26. januar 2010 - 15:48
Der er
6 kommentarer
Hvordan gør jeg det i sql
Hejsa
Jeg har en række tabeller:
Tabel1:
kundenummer, navn
tabel2:
kundenummer, produktnummer, produktnavn, antal
tabel3:
kundenummer, produktnummer, produktnavn, antal
Hvordan i en sql får jeg følgende resultat:
kundenummer, navn, produktnummer, produktnavn, antal(tabel1), antal(tabel2).
F.eks:
1234, Jens Jensen, 444, Søm, 100, 200
1234, Jens Jensen, 445, Skruer, null, 5
1234, Jens Jensen, 446, Briller, 1, null
osv osv
Håber mit spørgsmål giver mening.
/c
26. januar 2010 - 15:54
#1
SELECT *
FROM tabel1,tabel2,tabel3
WHERE tabel1.kudnernummer=tabel2.kudnernummer AND tabel1.kudnernummer=tabel3.kudnernummer
vil give alt.
Du kan erstatte stjernen med en liste med de felter du har brug for.
26. januar 2010 - 16:52
#4
Summer laves som:
SELECT grupperingsfelt,SUM(vaerdifelt)
FROM tabel
GROUP BY grupperingsfelt
men jeg er lidt tabt med hensyn til hvad du praecist vil have ud af det.
27. januar 2010 - 20:26
#6
Jeg er lidt i tvivl om indholdet i tabel 2 og 3 indeholder de samme produktnumre, hvad du ønsker at få ud.
Måske noget ala:
select t1.kundenummer, t1.navn, t2.produktnummer, t2.produktnavn, sum(t2.antal)
from tabel1 t1
join tabel2 t2 on t1.kundenummer = t2.kundenummer
group by t1.kundenummer, t1.navn, t2.produktnummer, t2.produktnavn
union all
select t1.kundenummer, t1.navn, t3.produktnummer, t3.produktnavn, sum(t3.antal)
from tabel1 t1
join tabel3 t3 on t1.kundenummer = t3.kundenummer
group by t1.kundenummer, t1.navn, t3.produktnummer, t3.produktnavn
Findes eks. samme produktnummer i tabel 2 +3 kan du overveje at lægge ovenstående i en subselect, og derefter gruppere som i ovenstående eksempel.
Wagner