10. februar 2005 - 10:07Der er
7 kommentarer og 1 løsning
Avanceret SQL
Hej
Jeg skal have hentet alle ordrer der er leveret inden for 2 måneder ud af min database. Men kan ikke lige gennemskue hvordan.
Min database er som følger:
Ordrearkiv ------------------- Nummer (varchar(10)) Konto (varchar(10)) ordre (varchar(10))
Ordreliniearkiv ------------------- Nummer (varchar(10)) levering (datetime)
Jeg vil godt have nummer og ordre ud fra ordrearkiv og levering ud fra ordreliniearkiv hvor konto = ' 12345678'
- Tabellerne er kædet sammen med Nummer - Der kan være 1 eller mange rækker i ordreliniearkiv som passer til ordrearkiv - Der skal tjekkes på om den nyeste linie der matcher et ordrenummer er mindre end 2 måneder siden.
Select distinct o.nummer, o.ordre, l.levering From ordrearkiv o left join ordreliniearkiv l on o.nummer = l.nummer where l.levering >= dateadd(m,2,getdate())
Select distinct o.nummer, o.ordre, l.levering From ordrearkiv o left join ordreliniearkiv l on o.nummer = l.nummer where l.levering >= dateadd(m,2,getdate())
Select distinct o.nummer, o.ordre, l.levering From ordrearkiv o left join ordreliniearkiv l on o.nummer = l.nummer where l.levering >= dateadd(m,-2,getdate())
Men hvilken leveringsdato ønsker du, dersom der er flere leveringsdato på en ordre?
I nedenstående tilfælde vil du få den seneste leveringsdato på ordren:
Select distinct o.nummer, o.ordre, max(l.levering) From ordrearkiv o left join ordreliniearkiv l on o.nummer = l.nummer where l.levering >= dateadd(m,-2,getdate()) group by o.nummer, o.ordre
Jeg var igen lidt hurtig, du behøver ikke distinct i dette tilfælde:
Select o.nummer, o.ordre, max(l.levering) From ordrearkiv o left join ordreliniearkiv l on o.nummer = l.nummer where l.levering >= dateadd(m,-2,getdate()) group by o.nummer, o.ordre
Det var det jeg ville :-) (med enkelte modifikationer)
Jeg gjorde det meget mere kompliceret end det egentlig var.
Synes godt om
Ny brugerNybegynder
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.