के लिए एसयूएम (केस जब x THEN 1 ELSE 0) नीचे देखे गए प्रश्न के लिए बेहतर दृष्टिकोण है या नहीं। मैं जो करने की कोशिश कर रहा हूं वह सारांश रिपोर्ट बना रहा है, जो आंकड़ों को संकलित करता है।एसक्यूएल क्वेरी - एकाधिक कॉलम
SELECT CAST(Detail.ReceiptDate AS DATE) AS 'DATE'
, SUM(CASE WHEN Detail.Type = 'TotalMailed' THEN 1 ELSE 0 END) AS 'TOTALMAILED'
, SUM(CASE WHEN Detail.Type = 'TotalReturnMail' THEN 1 ELSE 0 END) AS 'TOTALUNDELINOTICESRECEIVED'
, SUM(CASE WHEN Detail.Type = 'TraceReturnedMail' THEN 1 ELSE 0 END) AS 'TRACEUNDELNOTICESRECEIVED'
FROM
(
select SentDate AS 'ReceiptDate', 'TotalMailed' AS 'Type'
from MailDataExtract
where sentdate is not null
UNION ALL
select MDE.ReturnMailDate AS 'ReceiptDate', 'TotalReturnMail' AS 'Type'
from MailDataExtract MDE
where MDE.ReturnMailDate is not null
UNION ALL
select MDE.ReturnMailDate AS 'ReceiptDate', 'TraceReturnedMail' AS 'Type'
from MailDataExtract MDE
inner join DTSharedData.dbo.ScanData SD ON SD.ScanDataID = MDE.ReturnScanDataID
where MDE.ReturnMailDate is not null AND SD.ReturnMailTypeID = 1
) AS Detail
GROUP BY CAST(Detail.ReceiptDate AS DATE)
ORDER BY 1
यह केवल क्वेरी (जो एक रिपोर्ट में प्रयोग किया जाता है) का एक नमूना के रूप में वहाँ अन्य स्तंभों के एक नंबर और अन्य आंकड़े के लिए तर्क कर रहे हैं जिस तरह से अधिक जटिल है। इस तरह की रिपोर्ट/इस तरह की रिपोर्ट लिखने के लिए कोई और शानदार तरीका है?
एक proc या एक दृश्य, या कुछ और इस है? असल में, क्या आप चर प्रस्तुत कर सकते हैं और एकाधिक कथन चला सकते हैं, या यह सिर्फ एक बड़ा 'चयन' कथन है? –
यह एक proc है जिसका उपयोग एसएसआरएस रिपोर्ट के लिए किया जाएगा, इसलिए इसे अनिवार्य रूप से एक चुनिंदा कथन होना होगा क्योंकि मुझे परिणाम सेट (दाएं?) – MickJuice
हाँ वापस करने की आवश्यकता है, अंततः आपके पास एक बड़ा 'चयन' होगा अंत में, लेकिन चूंकि यह एक प्रो में है, इसलिए आपके पास अपनी क्वेरी को छोटे, सरल हिस्सों में विभाजित करने की क्षमता होगी, साथ ही साथ वैरिएबल को वैल्यू असाइन करना होगा। यह पठनीयता में एक बड़ा अंतर कर सकता है। उदाहरण के लिए, इन तीन उप-श्रेणियों को 'संघ' या समूहबद्ध करने के बजाय, आपके पास तीन छोटे स्टैंडअलोन प्रश्न अग्रिम में चल सकते हैं जो चर के परिणामों को सारांशित करते हैं, फिर बस अपनी वापसी क्वेरी के लिए उन चर का चयन करें। संभावित रूप से पढ़ने और समझने के लिए बहुत आसान है, और संभवतः बेहतर प्रदर्शन भी। –