Förmiddag I using verkställer SQL för att bearbeta en serie av möjlighetvalet filtrerar från, genom att kalla applikation i VB6. Om ingenting är utvalt för given, sätta in i den kallande appen, då jag önskar inte att filtrera på det sätter in. SAMMANSMÄLTA fungerar arbeten väl för denna och är funktionsduglig på alla, men datera spänner. Alla möjlighet sätter in i databasen endera innehåller en värdera, eller ett OGILTIGT värderar. Förmiddagen för problem som I den har, är med datera spänner. Om jag passerar i en spänna av daterar, den ska filtrerar på det spänner och, retur, endast som de rekord spänner däri. Om jag passerar i ingenting (inget filtrera önskat), I-uppsättningen som datera spänner variabler till OGILTIGT (som jag gör för annan sätter in), och, skulle förvänta att alla rekord som ska gås tillbaka huruvida det har en datera eller ett OGILTIGT. I stället det går alla rekord med några tillbaka daterar värderar i sätta in - det uteslutar daterarekorden med en värdera av OGILTIGT i databasen. Överenskommelse för förmiddag I inte, varför den fungerar, som förväntat med detta att närma sig för det annat valet sätter in, yet inte för datera. Min query är nedanför. Med dess strömvariabelinställningar som jag skulle, förvänta den för att gå ALL records.
tillbaka--Applicera filtrerar, som behövt baserat värderar på passerat in från att kalla application. --Bruk SAMMANSMÄLTER fungerar: Om inget värdera passeras in, den fastställda variabeln till OGILTIGT och SAMMANSMÄLTER därefter ska för att inte applicera en filter. --detta fungerar fint och att filtrera som nödvändigt eller gå alla rekord tillbaka, som behövt (huruvida eller inte det finns ett non-NULL värderar i sätta in), bortsett från DATERA sätter in hänvisad till here
--För datera spänner, om jag passerar i en spänna som det fungerar korrekt och filtrerar spänner på, men, om I-UPPSÄTTNINGEN daterar, spänna variabler till OGILTIGT (som jag gör de andra variablerna), för att inte filtrera på sätta in, it --rekord för retur endast med en datera värderar i sätta in. Den går inte rekorden med ett OGILTIGT för @TERRITORYRÖDINGEN för value.
DECLARE för DATETIME SET för @DATEBEGIN för @STATE=NULL DECLARE för SET för @STATE VARCHAR för @TERRITORY=NULL DECLARE för SET (5) (10) för DATETIME SET för @DATEEND @DATEBEGIN=NULL DECLARE FÖRETAG @DATEEND=NULL
SELECT, ATT TILLTALA, STADEN som ÄR STATLIG, ZIPCODEN, TERRITORIET, FOLLOWUPDATE FROM LEADS WHERE TERRITORY =, SAMMANSMÄLTER (@TERRITORY, TERRITORIET) AND STATE = SAMMANSMÄLTER (@STATE, PÅSTÅR), AND FOLLOWUPDATE BETWEEN SAMMANSMÄLTER (@DATEBEGIN, FOLLOWUPDATE) OCH SAMMANSMÄLTER (@DATEEND, FOLLOWUPDATE)
" klar "
|