Avatar billede dsjk Novice
10. februar 2006 - 10:09 Der er 4 kommentarer og
1 løsning

query - tager den samme linie flere gange

Hej

Jeg er ved at lave en forespørgsel, der er sammensat af flere tabeller, i forespørgslen har jeg et felt "Antal1" som jeg angiver en værdi på afhængig af værdien i nogle andre felter.
Det kører fint nok, lige indtil jeg knytter den sidste tabel på: "t_udland"

Det er sådan at der i tabellen t_udland er en henvisning til t_konvertering, men det er ikke alle poster fra t_konvertering der har en henvisning i t_udland.

Problemet er at jeg enten kun får vist dem der har en post i t_udland eller også tager den alle og ved "varenr 604" skriver den så denne linie 5 gange (hvilket er antallet af poster i t_udland).
Hvordan får jeg den til kun at vise linien en gang?

Jeg har denne query:
SELECT omdeling.ordningid, omdeling.omdeling_id, omdeling.bladid, omdeling.uge, omdeling.aar, Sum([indland]+[opfyldning]+[udland]+[fejl]) AS oplag, t_konvertering.konverteringstype, t_vare.varenr, t_vare.enhed, t_vare.Afregningsgruppe, t_vare.varegruppe, t_vare.pris, IIf([varenr]=605,IIf((([konverteringstype]=1) Or ([konverteringstype]=2) Or ([konverteringstype]=3) Or ([konverteringstype]=4)),1,0),IIf([varenr]=602,1,IIf([varenr]=604,IIf(([grønland]+[færøerne]+[øvrig europa]+[øvrig udland])>0,([grønland]+[færøerne]+[øvrig europa]+[øvrig udland]),0),IIf([varenr]=603,IIf([udlandskuverter]=-1,1,0))))) AS Antal1
FROM t_vare, t_udland, t_konverteringspriser INNER JOIN (omdeling INNER JOIN t_konvertering ON omdeling.omdeling_id = t_konvertering.udsendelsesid) ON t_konverteringspriser.t_konverteringstype = t_konvertering.konverteringstype
GROUP BY omdeling.ordningid, omdeling.omdeling_id, omdeling.bladid, omdeling.uge, omdeling.aar, t_konvertering.konverteringstype, t_vare.varenr, t_vare.enhed, t_vare.Afregningsgruppe, t_vare.varegruppe, t_vare.pris, IIf([varenr]=605,IIf((([konverteringstype]=1) Or ([konverteringstype]=2) Or ([konverteringstype]=3) Or ([konverteringstype]=4)),1,0),IIf([varenr]=602,1,IIf([varenr]=604,IIf(([grønland]+[færøerne]+[øvrig europa]+[øvrig udland])>0,([grønland]+[færøerne]+[øvrig europa]+[øvrig udland]),0),IIf([varenr]=603,IIf([udlandskuverter]=-1,1,0)))))
HAVING (((t_vare.varegruppe)=600));

I ovenstående viser den linien med "Varenr 604" de 5 gange.

/dsjk
Avatar billede jensen363 Forsker
10. februar 2006 - 10:12 #1
Du mangler nogle relationer imellem dine tabeller ... dvs. Varenr 604 har ikke entydig reference til een tabel, men derimod flere
Avatar billede dsjk Novice
10. februar 2006 - 10:13 #2
jo, den har en relation, har bare fjernet den fra forespørgslen, men tager jeg den med i forespørgslen viser den kun dem der har en relateret post i t_udland og ikke dem der ikke har en relateret post.
Avatar billede jensen363 Forsker
10. februar 2006 - 10:15 #3
I stedet for INNER JOIN, kan du forsøge med LEFT JOIN eller RIGHT JOIN
Avatar billede dsjk Novice
10. februar 2006 - 10:27 #4
hmm, ja ok det virker, af omveje :)
Måtte lave en ny query hvor jeg har en LEFT JOIN og så tage den query med i stedet for de 2 tabeller.

Takker
Avatar billede jensen363 Forsker
10. februar 2006 - 10:29 #5
Velbekommen :o)
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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