webForumDet fria alternativet

Knepig SQL, VFP8

4 svar · 198 visningar · startad av aleborg

aleborgMedlem sedan jan. 20012 962 inlägg
#1

Jag har en SQL-fråga som fungerar och en liknande som funkar men inte som jag vill :(
Databasen är Visual Fox Pro 8

Den här fungerar utan problem men saknar en kolumn jag vill ha:

SELECT     g_Order.INVOICEID, g_Order.STATUSID, g_Order.DateInvoice, g_Order.DateDue, g_Order.LINKID, g_Order.BACKLINK, g_Order.sum_n AS Summa, 
                      g_Order.sum_vat AS Moms, g_Order.curr_paysum AS Totalt, SUM(g_Res.Debet - g_Res.Kredit) AS Saldo, g_Order.crinvoiceid
FROM         gurudata!g_Order INNER JOIN
                      GuruData!g_MainL ON g_MainL.LinkID = g_Order.LinkID INNER JOIN
                      GuruData!g_Res ON g_MainL.MatchID = g_Res.MatchID
WHERE     g_Order.INVOICEID > 0 AND InList(g_Order.STATUSID, 5700, 5800) AND g_Order.ContID = 30033
GROUP BY g_Order.INVOICEID, g_Order.linkid, g_Order.STATUSID, g_Order.DateInvoice, g_Order.DateDue, g_Order.LINKID, g_Order.BACKLINK, g_Order.sum_n, 
                      g_Order.sum_vat, g_Order.curr_paysum, g_Order.crinvoiceid

Den här frågan innehåller det fältet jag vill ha men tyvärr returnerar den dubletter:

SELECT     g_Order.INVOICEID, g_Order.STATUSID, g_Order.DateInvoice, g_Order.DateDue, g_Order.LINKID, g_Order.BACKLINK, g_Order.sum_n AS Summa, 
                      g_Order.sum_vat AS Moms, g_Order.curr_paysum AS Totalt, SUM(g_Res.Debet - g_Res.Kredit) AS Saldo, g_Order.crinvoiceid, g_Res.paydate
FROM         gurudata!g_Order INNER JOIN
                      GuruData!g_MainL ON g_MainL.LinkID = g_Order.LinkID INNER JOIN
                      GuruData!g_Res ON g_MainL.MatchID = g_Res.MatchID
WHERE     g_Order.INVOICEID > 0 AND InList(g_Order.STATUSID, 5700, 5800) AND g_Order.ContID = 30033
GROUP BY g_Order.INVOICEID, g_Order.linkid, g_Order.STATUSID, g_Order.DateInvoice, g_Order.DateDue, g_Order.LINKID, g_Order.BACKLINK, g_Order.sum_n, 
                      g_Order.sum_vat, g_Order.curr_paysum, g_Order.crinvoiceid, g_Res.paydate

Fältet jag har lagt till är g_Res.paydate
Hur löser jag detta?

LarsGMedlem sedan dec. 200012 465 inlägg
#2

Vad får du för resultat och vilket vill du ha?

aleborgMedlem sedan jan. 20012 962 inlägg
#3

Resultatet från fråga 1:

	4962	5700	2004-09-21	2004-10-18	121	0	20000	5000	25000	0	0

Resultatet från fråga 2:

	4962	5700	2004-09-21	2004-10-18	121	0	20000	5000	25000	25000	0	00:00:00
	4962	5700	2004-09-21	2004-10-18	121	0	20000	5000	25000	-25000	0	2004-09-27

Resultatet jag vill ha:

	4962	5700	2004-09-21	2004-10-18	121	0	20000	5000	25000	0	0	2004-09-27

Dvs resultate av fråga 1 med g_Res.paydate inkluderat
Har provat med distinct också utan nån större lycka.

LarsGMedlem sedan dec. 200012 465 inlägg
#4
max(g_Res.paydate)

i select-listan och tag bort paydate from group by

aleborgMedlem sedan jan. 20012 962 inlägg
#5

TACK!!! :D

Genererad på 374 ms · cache AV · v20260730165559-full.f96bc7eb