के साथ कथन है, तो मैं WHERE CASE WHEN
कथन वाले SQL क्वेरी बना रहा हूं। मैं कुछ गलत कर रहा हूं और त्रुटि प्राप्त कर रहा हूं।जहां केस
मेरे SQL विवरण
तरहDECLARE @AreaId INT = 2
DECLARE @Areas Table(AreaId int)
INSERT INTO @Areas SELECT AreaId
FROM AreaMaster
WHERE CityZoneId IN (SELECT CityZoneId FROM AreaMaster WHERE AreaId = @AreaID)
SELECT *
FROM dbo.CompanyMaster
WHERE AreaId IN
(CASE WHEN EXISTS (SELECT BusinessId
FROM dbo.AreaSubscription
WHERE AreaSubscription.BusinessId = CompanyMaster.BusinessId)
THEN @AreaId
ELSE (SELECT [@Areas].AreaId FROM @Areas)
END)
मैं
संदेश 512, स्तर 16, राज्य 1, रेखा 11
के रूप में त्रुटि हो रही है Subquery 1 से अधिक मान दिया है। यह अनुमति नहीं है जब subquery निम्न =,! =, <, < =,>,> = या जब subquery को अभिव्यक्ति के रूप में उपयोग किया जाता है।
कृपया सफलतापूर्वक क्वेरी चलाने में मदद करें। मेरा तर्क प्रत्येक पंक्ति के लिए सशर्त AreaId
(कथन) में जांचना है।
मैं केवल जब
- कंपनी विशिष्ट क्षेत्र से
@AreaId
- तालिका
AreaSubscription
पारित कर दिया सब्सक्रिप्शन प्रविष्टि नहीं है के लिएAreaSubscription
में सदस्यता प्रविष्टि है तो(SELECT [@Areas].AreaId FROM @Areas)
'चयन [@ एरिया] .एरिया से @ एरिया आईडी क्या यह कई मूल्यों को वापस कर रहा है? – Nithesh
हां यह क्वेरी में पहले किए गए क्षेत्रों की सूची लौटाता है। –
मुझे लगता है कि सबक्वायरी अपवाद है। '(SELECT BusinessId dbo.Area सदस्यता से जहां क्षेत्र सदस्यताएं। व्यवसाय Id = CompanyMaster.BusinessId) के परिणाम के बारे में क्या? कई? – Nithesh