MrTermMedlem sedan feb. 20094 inlägg
Hej!
Var ett tag sedan jag satt med sql satser. Detta är mot en mysql 5.
Problemet är att jag vill plocka hur många BSPid det är som har fler än, Count(tblInvoice.invCID) > 1.
Dvs sql satsen nedan är korrekt, men jag vill även få in så den bara räknar på de som har Count(tblInvoice.invCID) > 1
SELECT count(BSPid) as countBS FROM tblBSCustomer, tblInvoice, tblCustomer WHERE tblInvoice.invStatus>0 AND tblInvoice.invCID=tblCustomer.CID AND tblBSCustomer.BSPid=tblCustomer.CPID AND MONTH(tblInvoice.invDtm)="& Month(now()) &""
Tack så jättemycket på förhand.
/Janne
LarsGMedlem sedan dec. 200012 465 inlägg
Jag förstår inte vad du menar med
Problemet är att jag vill plocka hur många BSPid det är som har fler än, Count(tblInvoice.invCID) > 1.
Ge exempel på datainnehåll coh förväntat resultat.
MrTermMedlem sedan feb. 20094 inlägg
Tack för extremt snabbt svar.
Ska försöka förklara hur det fungerar.
Jag vill få ut en siffra ur sql satsen.
tblBSCustomer.BSPid är ett personnummer.
tblCustomer.CPID är även det ett personnummer.
tblInvoice.invCID har samma värde som tblCustomer.CID
tblBSCustomer.BSPid har samma värde som tblCustomer.CPID
Count(tblInvoice.invCID) > 1 räknar om det finns mer fakturor på detta invCID.
Så igentligen räknar sql satsen ut hur många tblBSCustomer.BSPid som har Count(tblInvoice.invCID) > 1.
Så från detta presenteras bara en siffra.
Om jag ger förvirrande information, säg till!
effataMedlem sedan apr. 2008141 inlägg
Jag skulle tro att du behöver en eller flera subqueries. Väldigt svårt att skriva en query utan att se exakt hur din struktur ser ut.
MrTermMedlem sedan feb. 20094 inlägg
Tänkte också detta, men krävs så mycket mer kraft då :(
LarsGMedlem sedan dec. 200012 465 inlägg
select count(BSPid) as countBS
from tblBSCustomer
where exists
(select 1
from tblInvoice join blCustomer
on tblInvoice.invCID = tblCustomer.CID
where tblInvoice.invStatus > 0
and tblBSCustomer.BSPid = tblCustomer.CPID
and MONTH(tblInvoice.invDtm) = Month(current_date)
group by tblInvoice.invCID
having Count(*) > 1)
MrTermMedlem sedan feb. 20094 inlägg
Hej Larsg!
Tack för svaret!
Jag kör din sql sats (dock saknas ett t vid blCustomer)
Men denna sql sats laddar konstant och ingenting händer.
Har lite svårt att se vad som kan vara fel, vad betyder: select 1 from tblInvoice
Tack på förhand.