how to combine two SQL query's

sven2

Registered User.
Local time
Today, 04:29
Joined
Apr 28, 2007
Messages
297
Hello,

how can I do the following:

I have 2 query's with the same field kwaliteitsgegevens.kwaliteitsnaam
Now it should be so that in query 1 all the results from query 2 are excluded.

Is this possible?

Query1:
strSQL = " SELECT Kwaliteitsnaam, FrequentieID, MachineID, Eenheid " & _
" FROM dbo.TblKwaliteitgegevens " & _
" WHERE (FrequentieID = " & [Forms]![FrmIngaveparametersfrq]![txtfrequentie] & ") And (MachineID = " & [Forms]![FrmIngaveparametersfrq]![txtmachine] & ")"

Query2:
strSQL = " SELECT dbo.TblKwaliteitswaarde.Moederrolnummer, dbo.TblKwaliteitgegevens.Kwaliteitsnaam, dbo.TblKwaliteitswaarde.Kwaliteitswaarde, dbo.TblKwaliteitgegevens.Eenheid , dbo.TblKwaliteitgegevens.FrequentieID, dbo.TblKwaliteitgegevens.MachineID " & _
" FROM dbo.TblKwaliteitgegevens INNER JOIN dbo.TblKwaliteitswaarde ON dbo.TblKwaliteitgegevens.KwaliteitID = dbo.TblKwaliteitswaarde.KwaliteitID " & _
" WHERE (dbo.TblKwaliteitgegevens.FrequentieID = " & [Forms]![FrmIngaveparametersfrq]![txtfrequentie] & ") AND (dbo.TblKwaliteitgegevens.MachineID = " & [Forms]![FrmIngaveparametersfrq]![txtmachine] & ") AND (dbo.TblKwaliteitswaarde.Moederrolnummer = " & [Forms]![FrmIngaveparametersfrq]![Txtmoederrolnr] & ")"


Thanks in advance,
Sven.
 
Create a stored procedure on SQL server to do it rather than fire SQL from within your application, it'll run faster and your database logic will be where it belongs, in your database.

Lecture over.

Code:
SELECT Kwaliteitsnaam, FrequentieID, MachineID, Eenheid
FROM dbo.TblKwaliteitgegevens AS kg
LEFT JOIN
(
	SELECT kg.Kwaliteitsnaam
	FROM dbo.TblKwaliteitgegevens AS kg 
	INNER JOIN dbo.TblKwaliteitswaarde AS kw ON 
		kg.KwaliteitID = kw.KwaliteitID
	WHERE (kg.FrequentieID = " & [Forms]![FrmIngaveparametersfrq]![txtfrequentie] & ") 
	AND (kg.MachineID = " & [Forms]![FrmIngaveparametersfrq]![txtmachine] & ") 
	AND (kw.Moederrolnummer = " & [Forms]![FrmIngaveparametersfrq]![Txtmoederrolnr] & ")"
) AS q2 on
	kg.Kwaliteitsnaam = q2.Kwaliteitsnaam
WHERE (FrequentieID = " & [Forms]![FrmIngaveparametersfrq]![txtfrequentie] & ") 
And (MachineID = " & [Forms]![FrmIngaveparametersfrq]![txtmachine] & ")"
AND q2.Kwaliteitsnaam is NULL

is a simple rewrite of your two queries that should produce the results you're looking for. It returns everything that doesn't have a match in query 2 using kwaliteitsnaam to perform a LEFT JOIN between the two queries.
 

Users who are viewing this thread

Back
Top Bottom