Hier ist meine Abfrage, um den Bericht Apportieren für jeden Monat der bezahlten und unbezahlten Buchungengenerieren monatlich basierend Datensätze in einer Periode
SELECT tbc.tbcId
,tbc.tbcName
,(
SELECT COUNT(bb.bbId)
FROM MyBooking bb
WHERE bb.tbcId = tbc.tbcId
AND bb.bbIsPayed = 1
AND Year(bb.bbDate) = '2016' --proc parameter @year
AND Month(bb.bbDate) = '7' --proc parameter @month
) AS PaidCount
,(
SELECT SUM(CASE
WHEN bb.bbVAT = 1
THEN (bb.bbPrice/100) * 80
ELSE bb.bbPrice
END)
FROM MyBooking bb
WHERE bb.tbcId = tbc.tbcId
AND bb.bbIsPayed = 1
AND Year(bb.bbDate) = '2016' --proc parameter @year
AND Month(bb.bbDate) = '7' --proc parameter @month
) AS PaidAmount
,(
SELECT COUNT(bb.bbId)
FROM MyBooking bb
WHERE bb.tbcId = tbc.tbcId
AND bb.bbIsPayed <> 1
AND Year(bb.bbDate) = '2016' --proc parameter @year
AND Month(bb.bbDate) = '7' --proc parameter @month
) AS UnpaidCount
,(
SELECT SUM(CASE
WHEN bb.bbVAT = 1
THEN (bb.bbPrice/100) * 80
ELSE bb.bbPrice
END)
FROM MyBooking bb
WHERE bb.tbcId = tbc.tbcId
AND bb.bbIsPayed <> 1
AND Year(bb.bbDate) = '2016' --proc parameter @year
AND Month(bb.bbDate) = '7' --proc parameter @month
) AS UnPaidAmount
FROM BookingCategories tbc
WHERE tbc.tbcIncludeReport = 1
AND tbc.tbcId IN (
SELECT DISTINCT con.tbcId
FROM CategoryXTags con
WHERE (
con.ttId = 26
OR con.ttId = 23
OR con.ttId = 24
)
)
ORDER BY tbc.tbcName ASC;
Ich habe laufen diese für einen bestimmten Zeitraum, beispiels Januar 2016 zu erhalten bis August 2016.
Ab jetzt führe ich dies in einer Schleife durch die Weitergabe einer @ year und @month Variable.
Ist es möglich, @FromDate und @Todate einfach zu übergeben und den Bericht für jeden Monat in derselben Abfrage zu generieren? Ich konnte nicht viel in SQL denken, um dies zu erreichen.
prüfen schrumpfen http://sqlhints.com/tag/monthly-sum-data-in-sql-server/ –