Aşağıdaki sorguda daha iyi bir yaklaşım olup olmadığını görmek istiyorum. Yapmaya çalıştığım, tarihe göre istatistikleri derleyen bir özet raporu oluşturmak.SQL Sorgusu - SUM (Birden çok sütun için CASE DAHA SONRA 1 0)
Bu, diğer bir dizi sütun ve diğer istatistikleri için mantık olduğu gibi (bir raporda kullanılan) Sorgunun sadece bir örnektirSELECT 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
yol daha karmaşıktır. Bu tür bir bilgiyi edinme/bu tür raporları yazma konusunda daha zarif bir yaklaşım var mı?
bu proc veya bir görünüm, yoksa başka bir şey mi? Temel olarak, değişkenleri tanıtabilir ve birden çok ifade çalıştırabilir misiniz, yoksa sadece büyük bir '' '' '' '' '' '' '' '' '' '' 'deyimidir? –
Bu bir SSRS raporu için kullanılacak bir proc, bu yüzden bir sonuç kümesi (sağa?) – MickJuice
Evet, sonuç olarak büyük bir 'select' dönmek zorunda olarak aslında bir select deyimi olması gerekecek. Sonuç olarak, bir prok uygulamasından bu yana, sorgunuzu daha küçük, daha basit parçalara ayırabilmeniz ve değişkenleri değişkenlere atayabildiğinizden emin olabilirsiniz. Bu okunabilirlik açısından büyük bir fark yaratabilir. Örneğin, bu üç alt soruyu birleştirmek veya gruplandırmak yerine, değişkenlere özetlenmiş sonuçlar atayan üç küçük bağımsız sorguya sahip olabilirsiniz, ardından geri dönüş sorgunuz için bu değişkenleri seçmeniz yeterlidir. Potansiyel olarak okumak ve anlamak ve muhtemelen daha iyi performans için çok daha kolay. –