Avatar billede lanthernen Nybegynder
07. januar 2009 - 09:52 Der er 4 kommentarer

Udtræk fra MS database

Hejsa

Har et udtræk:
SELECT DISTINCT JnlTickets.VisualId, JnlTickets.PLU, JnlTickets.NodeNo AS Kasse, JnlTickets.DateSold AS Salgsdato, JnlTickets.Qty AS Antal, JnlTickets.Price+JnlTickets.Tax AS TotalPris, JnlTickets.Tax AS Moms, JnlPayments.Fop AS BetalingsType
FROM JnlTickets
LEFT OUTER join
JnlDetails ON JnlTickets.JnlDetailID = JnlDetails.JnlDetailID
LEFT OUTER join
JnlPayments ON JnlDetails.JNLTranID = JnlPayments.JNLTranID
where day(DateSold)=day(getDate()) and month(DateSold)=month(getDate()) and year(DateSold)=year(getDate())
and JnlDetails.Qty=1 and JnlDetails.Reference='TICKET'

Hvor jeg henter salgsdata frem - jeg får dog enkelte records der figurerer 2 gange - derfor har jeg prøvet at tilføje dette til scriptet:
and JnlDetails.Qty=1 and JnlDetails.Reference='TICKET'

Men af en eller anden grund er det totalt ligegyldigt om denne AND sætning er tilføjet eller ej - har det at gøre med min join eller? Løsning?

Jeg kan selvfølgelig komme med mange flere oplysninger om scriptet men inden jeg skriver en hel roman vil jeg lige se om der er nogle der er friske ;-)
Avatar billede janus_007 Nybegynder
07. januar 2009 - 21:38 #1
Hej

Skriv sådan her: SELECT *
FROM JnlTickets
LEFT OUTER join
JnlDetails ON JnlTickets.JnlDetailID = JnlDetails.JnlDetailID
LEFT OUTER join
JnlPayments ON JnlDetails.JNLTranID = JnlPayments.JNLTranID
where day(DateSold)=day(getDate()) and month(DateSold)=month(getDate()) and year(DateSold)=year(getDate())
-> fjern denne hvis den ikke skal bruges!! and JnlDetails.Qty=1 and JnlDetails.Reference='TICKET'

På den måde kan du hurtigt se hvad der forårsager dine dubletter. Post lidt af det data her og så kan vi komme videre med at hjælpe dig :)
Avatar billede lanthernen Nybegynder
07. januar 2009 - 22:10 #2
Hejsa

Jeg ser dubletterne...

Men jeg har faktisk et spørgsmål som måske kan løse problemet?

Jeg vil gerne tilføje lidt til min join.

Jeg har JnlDetails.Reference som skal være lig med JnlTickets.Reference

how to

TAK
Avatar billede janus_007 Nybegynder
08. januar 2009 - 19:13 #3
SELECT *
FROM JnlTickets
LEFT OUTER join
JnlDetails ON JnlTickets.JnlDetailID = JnlDetails.JnlDetailID
and JnlTickets.Reference = JnlDetails.Reference <- der :)
LEFT OUTER join
JnlPayments ON JnlDetails.JNLTranID = JnlPayments.JNLTranID
...
Avatar billede lanthernen Nybegynder
20. marts 2011 - 19:40 #4
Janus_007 smid svar
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
Kategori
Computerworld tilbyder specialiserede kurser i database-management

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