Oprettet tor. d. 23. august 2012 kl. 11:44:52

mikkel_sommer
mikkel_sommer (20.560 point. Point ude: 230)

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?

Skrevet tor. d. 23. august 2012 kl. 11:49:56| #1

mikkel_sommer
mikkel_sommer (20.560 point)
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).

Skrevet fre. d. 24. august 2012 kl. 14:20:44| #2

mikkel_sommer
mikkel_sommer (20.560 point)
Fandt ud af at det var en decimal overflow fejl som kunne løses ved at sætte CVAR() rundt om SUM-funktionen.

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   


Seneste spørgsmål

Extension methods med constraint på interface

Oprettet den 18. maj 2013 kl. 19.26
CodingJoe giver 30 point for svar | Giv et svar »

Kopiere et objekt uden at få referencer med.

Oprettet den 16. maj 2013 kl. 17.51
CodingJoe giver 30 point for svar | Giv et svar »

Søge form i windows app

Oprettet den 16. maj 2013 kl. 07.27
joki giver 30 point for svar | Giv et svar »

Seneste guides

Slettet
Håndtering af tekstoversættelse i...
Parameteriseret tekstformatering i C#
C++ Historie og Programmering - Del 1







Tips & Tricks fra PC World

Teaser billede

Her er seks Google Labs-funktioner, som du skal slå til med det samme

Gmail Labs giver dig adgang til en masse smarte funktioner, som Googles ingeniører leger med i øjeblikket.


Anmeldelser fra PC World

Teaser billede

Test: Samsung Galaxy S4 er et hit - trods gøglertricks

Kan Samsung beholde førertrøjen i det store Android-race? Galaxy S4 er smækfyldt med innovative funktioner, men også med en del gøgl. Er det for meget? Få vores dom over Samsungs nye topmodel.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Tre smarte trick som gør Windows 8 bedre

Boot direkte til skrivebordet, få en strategisk godt placeret luk-knap og slip for at logge ind. Her er tre tips til Windows 8, som gør det nemmere at blive venner med styresystemet.


Nyheder fra Computerworld

Teaser billede

De 21 værste it-vaner - og hvordan du bryder dem

Du har helt sikkert en af disse dårlige it-vaner. Se her hvad du kan gøre.


IT Kurser
Samarbejdspartnere

Udgiver · © 2013 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger