A kde mas tabulku se zamestnanci? V podstate hledas všechny kombinace zamestnanec x zboží, pro které neexistuje (v nejakem obdobi) zaznam v tabulce vydej, ano?
Myslim, ze dle vyseuvedene formulace uz das ten cross join kombinovany s outer joiny (nebo not exists) dohromady, ne? Něco jako:
SELECT Zam_Zboz.ID_ZAM, Zam_Zboz.ID_Zboz, Zam_Zboz.JmenoZam, Zam_Zboz.JmenoZb
FROM (SELECT dbo.tZam.ID_ZAM, dbo.tZbozi.ID_Zboz, dbo.tZam.JmenoZam, dbo.tZbozi.JmenoZb
FROM dbo.tZbozi CROSS JOIN
dbo.tZam) AS Zam_Zboz LEFT OUTER JOIN
dbo.tPohyby ON Zam_Zboz.ID_ZAM = dbo.tPohyby.idZam AND Zam_Zboz.ID_Zboz = dbo.tPohyby.idZboz
WHERE (dbo.tPohyby.idZam IS NULL)
resp.
SELECT dbo.tZam.ID_ZAM, dbo.tZbozi.ID_Zboz, dbo.tZam.JmenoZam, dbo.tZbozi.JmenoZb
FROM dbo.tZbozi CROSS JOIN
dbo.tZam
WHERE (NOT EXISTS
(SELECT idZam, idZboz, Datum, Ks
FROM dbo.tPohyby
WHERE (idZam = dbo.tZam.ID_ZAM) AND (idZboz = dbo.tZbozi.ID_Zboz)))
MP