爲什麼SQL案例不能正常工作? 'in'的作品雖然不符合'不在'。SQL案例不能正常工作
或者也許有更好的方法來做到這一點?
我試圖將結果應用於滿足條件集的匹配,只要它不符合其他條件集。
謝謝
---------- Newsletters ----------
CASE WHEN \t (\t C.ID in \t \t (SELECT [ContactID] FROM [Customers].[dbo].[uvLSProspectiveContacts] WHERE [EnrolDate] > '2016-12-31 00:00:00.000' AND YearLevel = 0 AND ReferenceTable <> 'Enquiry')
\t \t \t AND C.ID not in \t (SELECT [ContactID] FROM [Customers].[dbo].[uvLSProspectiveContacts] WHERE [EnrolDate] > '2016-12-31 00:00:00.000' AND YearLevel > 0 AND ReferenceTable <> 'Enquiry')
\t \t \t)
\t \t \t OR
\t \t \t (\t C.ID in \t \t (SELECT [ContactSpouseID] FROM [Customers].[dbo].[uvLSProspectiveContacts] WHERE [EnrolDate] > '2016-12-31 00:00:00.000' AND YearLevel = 0 AND ReferenceTable <> 'Enquiry')
\t \t \t AND C.ID not in \t (SELECT [ContactSpouseID] FROM [Customers].[dbo].[uvLSProspectiveContacts] WHERE [EnrolDate] > '2016-12-31 00:00:00.000' AND YearLevel > 0 AND ReferenceTable <> 'Enquiry')
\t \t \t)
\t \t \t OR
\t \t \t (\t ESC.ContactEnquiryID in \t \t (SELECT [ContactID] FROM [Customers].[dbo].[uvLSProspectiveContacts] WHERE [EnrolDate] > '2016-12-31 00:00:00.000' AND YearLevel = 0 AND ReferenceTable = 'Enquiry')
\t \t \t AND ESC.ContactEnquiryID not in \t (SELECT [ContactID] FROM [Customers].[dbo].[uvLSProspectiveContacts] WHERE [EnrolDate] > '2016-12-31 00:00:00.000' AND YearLevel > 0 AND ReferenceTable = 'Enquiry')
\t \t \t)
THEN 'K'
ELSE
CASE WHEN \t (\t C.ID in \t \t (SELECT [ContactID] FROM [Customers].[dbo].[uvLSProspectiveContacts] WHERE [EnrolDate] > '2016-12-31 00:00:00.000' AND YearLevel > 0 AND YearLevel < 7 AND ReferenceTable <> 'Enquiry')
\t \t \t AND C.ID not in \t (SELECT [ContactID] FROM [Customers].[dbo].[uvLSProspectiveContacts] WHERE [EnrolDate] > '2016-12-31 00:00:00.000' AND YearLevel = 0 AND ReferenceTable <> 'Enquiry')
\t \t \t AND C.ID not in \t (SELECT [ContactID] FROM [Customers].[dbo].[uvLSProspectiveContacts] WHERE [EnrolDate] > '2016-12-31 00:00:00.000' AND YearLevel > 6 AND ReferenceTable <> 'Enquiry')
\t \t \t)
\t \t \t OR
\t \t \t (\t C.ID in \t \t (SELECT [ContactSpouseID] FROM [Customers].[dbo].[uvLSProspectiveContacts] WHERE [EnrolDate] > '2016-12-31 00:00:00.000' AND YearLevel > 0 AND YearLevel < 7 AND ReferenceTable <> 'Enquiry')
\t \t \t AND C.ID not in \t (SELECT [ContactSpouseID] FROM [Customers].[dbo].[uvLSProspectiveContacts] WHERE [EnrolDate] > '2016-12-31 00:00:00.000' AND YearLevel = 0 AND ReferenceTable <> 'Enquiry')
\t \t \t AND C.ID not in \t (SELECT [ContactSpouseID] FROM [Customers].[dbo].[uvLSProspectiveContacts] WHERE [EnrolDate] > '2016-12-31 00:00:00.000' AND YearLevel > 6 AND ReferenceTable <> 'Enquiry')
\t \t \t)
\t \t \t OR
\t \t \t (\t ESC.ContactEnquiryID in \t \t (SELECT [ContactID] FROM [Customers].[dbo].[uvLSProspectiveContacts] WHERE [EnrolDate] > '2016-12-31 00:00:00.000' AND YearLevel > 0 AND YearLevel < 7 AND ReferenceTable = 'Enquiry')
\t \t \t AND ESC.ContactEnquiryID not in \t (SELECT [ContactID] FROM [Customers].[dbo].[uvLSProspectiveContacts] WHERE [EnrolDate] > '2016-12-31 00:00:00.000' AND YearLevel = 0 AND ReferenceTable = 'Enquiry')
\t \t \t AND ESC.ContactEnquiryID not in \t (SELECT [ContactID] FROM [Customers].[dbo].[uvLSProspectiveContacts] WHERE [EnrolDate] > '2016-12-31 00:00:00.000' AND YearLevel > 6 AND ReferenceTable = 'Enquiry')
\t \t \t)
\t \t \t
THEN '1-6'
ELSE
CASE WHEN \t (\t C.ID in \t \t (SELECT [ContactID] FROM [Customers].[dbo].[uvLSProspectiveContacts] WHERE [EnrolDate] > '2016-12-31 00:00:00.000' AND YearLevel > 6 AND YearLevel < 13 AND ReferenceTable <> 'Enquiry')
\t \t \t AND C.ID not in \t (SELECT [ContactID] FROM [Customers].[dbo].[uvLSProspectiveContacts] WHERE [EnrolDate] > '2016-12-31 00:00:00.000' AND YearLevel < 7 AND ReferenceTable <> 'Enquiry')
\t \t \t)
\t \t \t OR
\t \t \t (\t C.ID in \t \t (SELECT [ContactSpouseID] FROM [Customers].[dbo].[uvLSProspectiveContacts] WHERE [EnrolDate] > '2016-12-31 00:00:00.000' AND YearLevel > 6 AND YearLevel < 13 AND ReferenceTable <> 'Enquiry')
\t \t \t AND C.ID not in \t (SELECT [ContactSpouseID] FROM [Customers].[dbo].[uvLSProspectiveContacts] WHERE [EnrolDate] > '2016-12-31 00:00:00.000' AND YearLevel < 7 AND ReferenceTable <> 'Enquiry')
\t \t \t)
\t \t \t OR
\t \t \t (\t ESC.ContactEnquiryID in \t \t (SELECT [ContactSpouseID] FROM [Customers].[dbo].[uvLSProspectiveContacts] WHERE [EnrolDate] > '2016-12-31 00:00:00.000' AND YearLevel > 6 AND YearLevel < 13 AND ReferenceTable = 'Enquiry')
\t \t \t AND ESC.ContactEnquiryID not in \t (SELECT [ContactSpouseID] FROM [Customers].[dbo].[uvLSProspectiveContacts] WHERE [EnrolDate] > '2016-12-31 00:00:00.000' AND YearLevel < 7 AND ReferenceTable = 'Enquiry')
\t \t \t)
THEN '7-6'
ELSE
CASE WHEN \t (\t C.ID in \t \t (SELECT [ContactID] FROM [Customers].[dbo].[uvLSProspectiveContacts] WHERE [EnrolDate] > '2016-12-31 00:00:00.000' AND ReferenceTable <> 'Enquiry')
\t \t \t)
\t \t \t OR
\t \t \t (\t C.ID in \t \t (SELECT [ContactSpouseID] FROM [Customers].[dbo].[uvLSProspectiveContacts] WHERE [EnrolDate] > '2016-12-31 00:00:00.000' AND ReferenceTable <> 'Enquiry')
\t \t \t)
\t \t \t OR
\t \t \t (\t ESC.ContactEnquiryID in \t \t (SELECT [ContactID] FROM [Customers].[dbo].[uvLSProspectiveContacts] WHERE [EnrolDate] > '2016-12-31 00:00:00.000' AND ReferenceTable = 'Enquiry')
\t \t \t)
THEN 'General'
ELSE '' END END
\t END
END AS ProspectiveNews,
嘗試'AND NOT EXISTS(SELECT * FROM [客戶] [DBO] [uvLSProspectiveContacts],其中[EnrolDate]> '2016年12月31日00:00:00.000' AND YearLevel> 0 AND ReferenceTable <>'Inquiry'AND [ContactID] = C.ID)' –
謝謝,儘管它看起來不像以下語法: – SSS
Msg 156,Level 15,State 1,Line 10 關鍵字'EXISTS'。 – SSS