Nu vil jeg så gerne ha en liste ud over de ressourcer, som mangler for et givent produkt. Altså noget i stil med
Produktnr, ressourcenr, antal 1, 3, 4 1, 5, 10
Jeg har altså brug for de poster i tabel 1, som der ikke er "dækning" for i tabel 2.
Håber mit spørgsmål er til at forstå. Jeg vil mene, det er noget med en LEFT (OUTHER) JOIN - men er lidt i tvivl, om hvordan det skal laves. En almindelig WHERE-betingelse virker ikke, idet denne jo sletter records i tabel 1 såfremt, der ikkke findes noget ressource i tabel 2.
I er selvfølgelig velkomne til at spørge uddybende :-)
De to tabller jeg omtaler ovenfor er begge queries. Betyder det ikke noget for performance (det skal bruges på en webside) at lave en nu query uf fra to allerede eksisterende?
Jeg havde tænkt mig noget med subqueries. men hvis det er ligemeget set ud fra et performancesynspunkt er det fint med guiden til mig...
Th equestion didnt mention queries but tables! If the tables in the two queries are related then you should be able to make a single query with an OUTER join testing if the table on the OUTER side is empty isung IS NULL. I cant give a precise answer not knowing more about your tables etc.
SELECT antalVagt.vagtNr, antalVagt.gruppenr, antalVagt.antalVagt, antalPerson.antalPerson FROM antalPerson LEFT JOIN antalVagt ON antalPerson.vagtNr = antalVagt.vagtnr AND antalPerson.gruppeNr = antalVagt.gruppeNr
Hvilket virker! Jeg har bare brug for det som RIGHT JOIN
SELECT antalVagt.vagtNr, antalVagt.gruppenr, antalVagt.antalVagt, antalPerson.antalPerson FROM antalPerson RIGHT JOIN antalVagt ON antalPerson.vagtNr = antalVagt.vagtnr AND antalPerson.gruppeNr = antalVagt.gruppeNr
hvilket ikke virker. Kolonnen antalPerson.antalPerson er tom. Hvad kan dette skyldes?
A OUTER JOIN (LEFT or RIGHT) return records from ONE or BOTH sides of the JOIN. The table which it will always select records from depends on whether or not it is a LEFT or RIGHT!
So IF antalPerson.antalPerson is empty then it is because there is NOT records in antalPerson which are related to antalVagt!
In an OUTER JOIN you have to decide which table you ALWAYS want to see records from even if the related table doesnt contain records! Once you have decided this you can place the SQL in Access's query builder and you will see a thin line joining the two tables. Right click in the line and select the radio button which gives you the table which you always want to see! This will give you a LEFT or RIGHT join!
If antalPerson.antalPerson is empty then it is because there is no related records on the OUTER side of the JOIN!
Jeg ville gerne at alle posterne fra fra antalVagt bliver vist. I feltet "antal" under forespørgsel 1 ville jeg gerne ha en række NULLs på nær ved gruppe 4 og 8, hvor der gerne skulle stå 2 og 10.
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.