mboost-dp1

SQL hjælp


Gå til bund
Gravatar #1 - XorpiZ
26. apr. 2010 11:57
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á

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?
Gravatar #2 - plazm
26. apr. 2010 12:18
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)
Gravatar #3 - XorpiZ
26. apr. 2010 12:20
Den tester jeg fluks. :)
Gravatar #4 - Emil Melgaard
26. apr. 2010 12:28
#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):

SELECT Faktureringsadresse.Adresse1,
Leveringsadresse.Adresse1

FROM Leveringsadresse
LEFT JOIN Faktureringsadresse
ON Leveringsadresse.Kundenummer = Faktureringsadresse.Kundenummer

WHERE Leveringsadresse.LastDateModified >= Dato OR Faktureringsadresse.LastDateModifed >= Dato
Gravatar #5 - plazm
26. apr. 2010 12:42
#4, bevares, hvis man vil have mange resultater er det jo en fin løsning ;)
Gravatar #6 - XorpiZ
26. apr. 2010 12:48
#4

Det ser umiddelbart ud til at give det rigtige resultat! Jeg takker og bukker.

Det er alt for mange år siden jeg har haft om SQL i skolen desværre :)
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.

Opret Bruger Login