के साथ चयनित कॉलम में मेरे पास एक (बल्कि जटिल) SQL कथन है जहां मैं कई अलग-अलग तालिकाओं से डेटा का चयन करता हूं, और खराब विरासत डेटा संरचना का सामना करने के लिए, मेरे पास कुछ कस्टम हैं कॉलम जो अन्य मानों से मूल्यों के आधार पर अपना मान प्राप्त करते हैं। मैं वर्तमान में CASE
बयान के साथ इस समाधान कर लिया है:WHERE क्लॉज में अमान्य कॉलम नाम त्रुटि, CASE
SELECT
...,
CASE channel
WHEN 1 THEN channel_1
WHEN 2 THEN channel_2
...
ELSE 0
END AS ChannelValue,
CASE channelu
WHEN 1 THEN channelu_1
WHEN 2 THEN channelu_2
...
ELSE '0'
END AS ChannelWithUnit,
...
FROM
...
--rest of statement continues with multiple joins and where/and clauses...
मैं सभी परिणाम मैं उम्मीद जब एमएस एसक्यूएल सर्वर प्रबंधन स्टूडियो में क्वेरी को क्रियान्वित करने, और के रूप में मैं अपने AS
में निर्दिष्ट है स्तंभ नाम सूचीबद्ध हैं मिलता है। हालांकि, किसी कारण से मुझे WHERE
कथन में सशर्त मानों का उपयोग करने की अनुमति नहीं है। अगर मैं क्वेरी के अंत में
AND ChannelValue > Limit * p.Percentage/100
जोड़ने के लिए, मुझे लगता है कि लाइन कह
संदेश 207, स्तर 16, राज्य 1, पंक्ति 152
अमान्य स्तंभ नाम 'ChannelValue' पर एक त्रुटि प्राप्त
इसकी अनुमति क्यों नहीं है? इसके बजाय मुझे क्या करना चाहिए?