Convertire Funzione DSUM in sql server

di il
1 risposte

Convertire Funzione DSUM in sql server

Buongiorno a tutti, sto convertendo la mia app access in Acces FE ed sql server BE

devo convertire la funzione Dsum in una query di aggiornamento, perchè sql server non la riconosce.

o pensato di are una query annidata, ma sono una zappa quindi vorrei capire se la strada è giusta o la devo cambiare.
la funzione originale è questa:
UPDATE TabMalattieIRFCL SET TabMalattieIRFCL.TotMalattie = DSum("[durata_gg]","[TabMalattieIRFCL]","[TabMalattieIRFCL]![Matricola]=" & [TabMalattieIRFCL]![Matricola]);
ho pensata di farla così
UPDATE TabMalattieIRFCL SET TabMalattieIRFCL.Matricola = [TabMalattieIRFCL].[Matricola], TabMalattieIRFCL.durata_gg = (SELECT sum(TabMalattieIRFCL.durata_gg) FROM TabMalattieIRFCL GROUP BY TabMalattieIRFCL.Matricola);
non mi a la somma e comunque mi dice che non è aggiornabile.
ripeto con le query annidate ancora non ho nessuna dimestichezza mi indirizzate nella giusta via?
Grazie

1 Risposte

  • Re: Convertire Funzione DSUM in sql server

    Dovresti sapere che il DSUM di fatto è una funzione di Aggregazione, quindi:
    
    DSum("PrezzoUnitario", "DettaglioOrdini", "IdOrdine = 1501")
    si può convertire con:
    
    SELECT Sum([DettaglioOrdini].PrezzoUnitario) AS SommaPrezzoUnitario
    FROM [DettaglioOrdini]
    WHERE ((([DettaglioOrdini].IdOrdine )=1501));
    Quindi mi pare semplice anche l'uso di una SubSelect... dovrebbe essere tutto eseguito ServerSide se scritto correttamente, ma puoi verificarlo con l'analizzatore.

    Prova a leggere con attenzione questo:
    https://www.experts-exchange.com/questions/29052271/How-to-replace-DSum-with-SQL-in-Ms-Access.html

    Fai attenzione che se i dati rilevati sono ReadOnly, puoi valutare di gestire il tutto con una QueryPassTrought.
Devi accedere o registrarti per scrivere nel forum
1 risposte