Avatar billede mikkel_sommer Nybegynder
23. august 2012 - 11:44 Der er 1 kommentar og
1 løsning

SQL returnerer ikke forventet resultat

Hej eksperter

Jeg har en asp.net applikation som henter data fra en access 2007 database. I min kode genererer jeg fgl. sql:

SELECT * FROM (SELECT [m.MemberID] AS [ID], [m.MemberNumber] AS [Medlemsnr], [m.Firstname] AS [Fornavn], [m.Lastname] AS [Efternavn], (SELECT SUM([Amount]) from [transactions] where [PaymentFor] IN ('2. halvår 2011','jul 2011','aug 2011','sep 2011','okt 2011','nov 2011','dec 2011') AND [MemberID] = [m.MemberID] AND [Active] = True) AS [2 halvår 2011], (SELECT SUM([Amount]) from [transactions] where [PaymentFor] IN ('1. halvår 2012','jan 2012','feb 2012','mar 2012','apr 2012','maj 2012','jun 2012') AND [MemberID] = [m.MemberID] AND [Active] = True) AS [1 halvår 2012], (SELECT SUM([Amount]) from [transactions] where [PaymentFor] IN ('2. halvår 2012','jul 2012','aug 2012','sep 2012','okt 2012','nov 2012','dec 2012') AND [MemberID] = [m.MemberID] AND [Active] = True) AS [2 halvår 2012] FROM Members m WHERE m.stateID = 1 ) AS [temp]  ORDER BY 2 ASC

Efter sql'en er genereret behandles den som følger:

dbc.Open();
OleDbDataAdapter da = new OleDbDataAdapter(cmdText, dbc);
DataTable dt = new DataTable();
da.Fill(dt);

return dt;

Problemet er at når dt bliver sat som datasource til mit gridview viser den 0 der hvor jeg har lagt transaktionerne sammen - men hvis jeg paster sql'en ind i en forespørgsel i Access giver den ikke 0 - og det er 100% den samme sql.

Any suggestions?
Avatar billede mikkel_sommer Nybegynder
23. august 2012 - 11:49 #1
Jeg tænker at det måske er i den indbygget Fill metode at der sker noget jeg ikke har taget højde for, for når jeg debugger mig igennem kan jeg se at dt indeholder 0'er og ikke de ventede værdier (1200).
Avatar billede mikkel_sommer Nybegynder
24. august 2012 - 14:20 #2
Fandt ud af at det var en decimal overflow fejl som kunne løses ved at sætte CVAR() rundt om SUM-funktionen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester