Frage : SQL ABWICKELN: VERSCHMELZEN FUNKTION - DATUM-STRECKEN UND UNGÜLTIGE WERTE

Ich verwende abwickele SQL, um eine Reihe mögliche Vorwählerfilter von, indem ich Anwendung in VB6 zu verarbeiten benenne.  Wenn nichts für ein gegebenes Feld in der benennenden APP vorgewählt wird, dann möchte ich nicht auf diesem Feld filtern.  Die VERSCHMELZENfunktion funktioniert gut für dieses und arbeitet an allen aber der Datum-Strecke.  Alle möglichen Felder in der Datenbank entweder enthalten einen Wert oder einen UNGÜLTIGEN Wert.   Das Problem, das ich habe, ist mit der Datum-Strecke.  Wenn ich in eine Strecke der Daten überschreite, filtert sie auf dieser Strecke und bringt nur jene Aufzeichnungen in dieser Strecke zurück.  Wenn ich in nichts überschreite (kein Filter gewünscht) stellte ich die Datum-Streckenvariablen NULL (wie ich für die anderen Felder tue) ein und würde alle Aufzeichnungen erwarten zurückgebracht zu werden, ob er ein Datum oder eine NULL hat.  Stattdessen bringt er alle Aufzeichnungen mit jedem möglichem Datumwert im Feld zurück - er schließt die Datumaufzeichnungen mit einem Wert der NULL in der Datenbank aus.  Ich verstehe, warum es wie erwartet mit dieser Annäherung für die anderen Vorwählerfelder funktioniert, noch nicht nicht für das Datum.  Meine Frage ist unten.  Mit seinen gegenwärtigen variablen Einstellungen würde ich sie erwarten, um ALLES records.

zurückzubringen--Filter anwenden, wie gebraucht gegründet auf den Werten, die innen vom Benennen von application.
geführt werden--Gebrauch VERSCHMILZT Funktion: Wenn kein Wert innen geführt wird, Variable NULL einstellen und dann ZU VERSCHMELZEN wendet nicht ein filter.
an--dieses ist adaequat, filtert so erforderliches oder bringt alle Aufzeichnungen wie (ob es einen Nichtnullwert im Feld gibt), außer dem DATUM Feld bezogenen here

gebraucht zurück--Für Datumstrecke wenn ich in eine Strecke überschreite, funktioniert es richtig und filtert auf Strecke, aber, wenn ICH Datum-Streckenvariablen NULL EINSTELLE (während ich die anderen Variablen tue), damit nicht auf dem Feld filtern, it
--Aufzeichnungen der Rückkehr nur mit einem Datumwert im Feld.  Es bringt nicht die Aufzeichnungen mit einer UNGÜLTIGEN value.

DECLARE @TERRITORY PUTZFRAU zurück (5)
SET @TERRITORY=NULL
DECLARE @STATE VARCHAR (10)
SET @STATE=NULL
DECLARE @DATEBEGIN DATETIME
SET @DATEBEGIN=NULL
DECLARE @DATEEND DATETIME
SET @DATEEND=NULL

SELECT FIRMA, ADRESSE, STADT, ZUSTAND, ZIPCODE, GEGEND, FOLLOWUPDATE
FROM LEADS
WHERE
TERRITORY = (@TERRITORY, GEGEND) AND
STATE = VERSCHMELZEN (@STATE, ZUSTAND) AND
FOLLOWUPDATE ZWISCHEN VERSCHMELZEN (@DATEBEGIN, FOLLOWUPDATE) UND VERSCHMELZEN (@DATEEND, FOLLOWUPDATE)

Antwort : SQL ABWICKELN: VERSCHMELZEN FUNKTION - DATUM-STRECKEN UND UNGÜLTIGE WERTE

Sie konnten dieses ändern gerade müssen

FOLLOWUPDATE ZWISCHEN VERSCHMELZEN (@DATEBEGIN, FOLLOWUPDATE) UND VERSCHMELZEN (@DATEEND, FOLLOWUPDATE)

zu

(FOLLOWUPDATE >= @DATEBEGIN ODER @DATEBEGIN IST UNGÜLTIG) UND (FOLLOWUPDATE <>
Weitere Lösungen  
 
programming4us programming4us