mboost-dp1
SQL hjælp
- Forside
- ⟨
- Forum
- ⟨
- Programmering
Mojn
Jeg har lidt bøvl med en SQL-statement.
Der er to tabeller (mange flere reelt, men det er kun de to, jeg skal bruge) - en indeholdende faktureringsadresse, og en indeholdende leveringsadresse, hvis denne er tilføjet.
Jeg skal have hevet alle adresser ud af leveringsadresserne, hvis de er opdateret efter en bestemt dato (LastDateModified hedder feltet) ELLER jeg skal have hevet leveringsadresserne ud, hvis det tilsvarende kundenummer i faktureringsadresserne er blevet opdateret efter en bestemt dato.
Jeg er ude i noget alá
Men det bøvler lidt synes jeg. Kan i se nogle åbenlyse fejl i min sql-kode? Det er længe siden jeg har leget med det :(
Har indsat lidt linjeskift for at lette læsbarheden. Der er sikkert nogle syntaxfejl, men det er hvad det er. Det er mere om jeg er helt hen i vejret med min ide?
Jeg har lidt bøvl med en SQL-statement.
Der er to tabeller (mange flere reelt, men det er kun de to, jeg skal bruge) - en indeholdende faktureringsadresse, og en indeholdende leveringsadresse, hvis denne er tilføjet.
Jeg skal have hevet alle adresser ud af leveringsadresserne, hvis de er opdateret efter en bestemt dato (LastDateModified hedder feltet) ELLER jeg skal have hevet leveringsadresserne ud, hvis det tilsvarende kundenummer i faktureringsadresserne er blevet opdateret efter en bestemt dato.
Jeg er ude i noget alá
SELECT Faktureringsadresse.Adresse1,
Leveringsadresse.Adresse1
FROM Faktureringsadresse, Leveringsadresse
WHERE Leveringsadresse.LastDateModified >=Dato (OR Leveringsadresse.Kundenummer =
Faktureringsadresse.Kundenummer AND Faktureringsadresse.LastDateModifed >=Dato)
Men det bøvler lidt synes jeg. Kan i se nogle åbenlyse fejl i min sql-kode? Det er længe siden jeg har leget med det :(
Har indsat lidt linjeskift for at lette læsbarheden. Der er sikkert nogle syntaxfejl, men det er hvad det er. Det er mere om jeg er helt hen i vejret med min ide?
Umiddelbart vil jeg gætte på at følgende gør det du ønsker
SELECT Leveringsadresse.Adresse1
FROM Faktureringsadresse, Leveringsadresse
WHERE (Leveringsadresse.LastDateModified >=Dato) OR (Leveringsadresse.Kundenummer =
Faktureringsadresse.Kundenummer AND Faktureringsadresse.LastDateModifed >=Dato)
SELECT Leveringsadresse.Adresse1
FROM Faktureringsadresse, Leveringsadresse
WHERE (Leveringsadresse.LastDateModified >=Dato) OR (Leveringsadresse.Kundenummer =
Faktureringsadresse.Kundenummer AND Faktureringsadresse.LastDateModifed >=Dato)
#1 og #2:
Begge jeres koder vil lave et kartesisk produkt, da der ikke er nogen join-betingelse når Leveringsadresse.LastDateModified >= Dato.
Du burde kunne gøre følgende (ikke testet):
Begge jeres koder vil lave et kartesisk produkt, da der ikke er nogen join-betingelse når Leveringsadresse.LastDateModified >= Dato.
Du burde kunne gøre følgende (ikke testet):
SELECT Faktureringsadresse.Adresse1,
Leveringsadresse.Adresse1
FROM Leveringsadresse
LEFT JOIN Faktureringsadresse
ON Leveringsadresse.Kundenummer = Faktureringsadresse.Kundenummer
WHERE Leveringsadresse.LastDateModified >= Dato OR Faktureringsadresse.LastDateModifed >= Dato
Gå til top
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.