Ud af disse ønsker jeg så at trække: salg.nr, salg.dato, Kunde.navn, forhandler.navn. Men hvis salg.kunde_nr = 0, så skal kunde-navn bare sætte til at være tom (på samme måde med at hvis salg.forhandler_nr = 0 skal forhandler-nr sættes til at være tom. Kan den klares på en eller anden måde?
hmm... jeg kan stadig ikke få det til at virke perfekt... jeg har måske heller ikke forklaret det helt ordenligt :$.. du kan lige få mine test-data og min SQL (som ikke virker efter hensigten): Forhandler: 1, "søren" 2, "kaj"
og min sql er: SELECT Salg.Nr, Salg.Dato, Forhandler.Navn, Kunde.Navn FROM Salg, Forhandler, Kunde WHERE Forhandler.nr = Salg.Forhandler_nr AND Kunde.nr = Salg.Kunde_nr
Mit problem er (i mine øjne) at hvis salg.kunde_nr = 0, så er der ingen relation mellem Kunde.nr og Salg.Kunde_nr (og ligeledes med forhandler) og derfor vises salg to og tre ikke, så jeg skal vel have en måde hvorpå jeg kan sige (IF (Salg.Kunde_nr = 0, "", Kunde.Navn) "og ellers Kunde.nr = Salg.Kunde_nr"
SELECT Salg.Nr, Salg.Dato, Forhandler.Navn, Kunde.Navn FROM (Salg LEFT JOIN Forhandler ON Forhandler.nr = Salg.Forhandler_nr) LEFT JOIN Kunde ON Kunde.nr = Salg.Kunde_nr
jeps.. det virker bare helt perfekt... jeg er ikke lige så skarp i JOIN-sætninger, så det må jeg lige kigge på :-). Men din sql virker perfekt :-) smid et svar
Det ville jeg nemlig også umiddelbart sige, så jeg prøvede med følgende SQL: SELECT Salg.Nr, Salg.Dato, Forhandler.Navn, Kunde.Navn FROM (Salg LEFT JOIN Forhandler ON Forhandler.nr = Salg.Forhandler_nr) LEFT JOIN Kunde ON Kunde.nr = Salg.Kunde_nr WHERE WHERE Kunde.Navn LIKE '%>soegeKundeNavn<%'AND Forhandler.Navn LIKE '%>soegeForhandlerNavn<%' Men hvis f.eks. >soegeKundeNavner< er tomt, bliver de poster hvor Kunde.Navn er NULL ikke medtaget
SELECT Salg.Nr, Salg.Dato, Forhandler.Navn, Kunde.Navn FROM (Salg LEFT JOIN Forhandler ON Forhandler.nr = Salg.Forhandler_nr) LEFT JOIN Kunde ON Kunde.nr = Salg.Kunde_nr WHERE (Kunde.Navn IS NULL OR Kunde.Navn LIKE '%>soegeKundeNavn<%') AND (Forhandler.Navn IS NULL OR Forhandler.Navn LIKE '%>soegeForhandlerNavn<%')
Det virker - nogenlunde. Nu sker der det at der står et soegeKundeNavn bliver posterne med dette Kunde-navn og alle poster hvor Kunde.navn = NULL medtaget (hvilket jo også er logisk nok npr man ser på SQL'en. Kan det laves sådan at hvis kunde er tomt, kommer alle poster (incl. dem med NULL) og hvis der står et navn kommer dem med NULL ikke?
ok, jeg havde bare håbet på at der var en eller anden smart måde at skrive det på i SQl. Tak for hjælpen :-)
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.