SQL-Ergebnisse ausschließen, wenn eine Bedingung erfüllt ist?

Ich habe die folgende Tabelle: compare. Ich muss eine innere Verknüpfung mit einem products Tabelle:

idCompare idProduct dateStamp
1         1         2011-12-12
2         1         2011-12-10
3         1         2012-01-05

Ausschließen will ich die idproduct von meinen Ergebnissen, wenn einer von Ihnen einen Termin innerhalb von sagen wir 7 Tagen.

Ich habe versucht, mit den NICHT IN und NICHT EXISTIERT, ohne Erfolg

SELECT     products.idProduct
FROM         products INNER JOIN
             compare ON products.idProduct = compare.idProduct
WHERE
(products.idProduct = '1') AND (products.idProduct 
    NOT IN
    (SELECT     idProduct
    FROM          compare
    WHERE      (products.idProduct = compare.idProduct) AND
    (dateStamp < DATEADD(DAY, - 7, GETDATE())))) 
  • Wählen Sie products.idProduct, obwohl Sie definieren es als 1. Ist dies gewollt?
  • Ich war einfach nur testen, diese 1-Beispiel, schließlich werde ich entfernen (- Produkte.idProduct = '1')
  • Nicht Sie müssen sich ON products.idProduct = compare.idProduct? Auch Sie wollen > oder >= statt < in der letzten Zeile, nicht wahr?
  • Und braucht man eigentlich die Informationen in compare oder sind Sie nur versuchen, um auszuschließen das product wenn der Vergleich Zeile vorhanden ist?
  • Ja das ist ein Tippfehler, ich hatte mich geändert, die Namen der Tabellen etc aus, was ich hier benutze. Aktualisiert
InformationsquelleAutor Standage | 2012-01-06
Schreibe einen Kommentar