Sql server 查询以获取财政年度月份之间的数据

Sql server 查询以获取财政年度月份之间的数据,sql-server,Sql Server,我必须单独显示一个财政年度所有月份的费用报告。 目前,我正在获取所有费用名称的特定月份的数据以及总和(金额),但我希望获取每个月的数据:- 例如: Name | Amount | Month Tea | 3600 | Apr Tea | 8500 | May Tea | 3600 | June Tea | 300 | July Te

我必须单独显示一个财政年度所有月份的费用报告。 目前,我正在获取所有费用名称的特定月份的数据以及总和(金额),但我希望获取每个月的数据:-

例如:

Name    |    Amount    |     Month

Tea     |    3600      |      Apr
Tea     |    8500      |      May
Tea     |    3600      |      June
Tea     |    300       |      July
Tea     |    360       |      Aug
Tea     |    600       |      Sep
Tea     |    870       |      Oct
请帮助查询如何获取数据。
谢谢

您能粘贴表结构吗?您能提供表架构吗?此外,根据您的示例,似乎每个月只需支付一种费用(即,在4月份仅支付茶,可能仅支付糖),请对此进行确认。如果是这种情况,我相信名称对于您的查询是不可逆的(即,字段仅用于选择,而不影响记录选择)。因此,您可以删除上面示例中的该字段,以关注实际问题。是的,尼廷,您是对的,我将从代码中传递NameID,以获取该特定“名称”的所有月份的数据。嘿,洛伦兹,我尝试了此解决方案,但出现了错误:“列'dateColumn'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。”。“此外,我将传递NameID以获取所有月份的特定费用名称的数据。您看到前面的答案了吗?虽然你的代码可能会工作,但你不觉得这太复杂了吗?如果回答者解释一下他的代码的作用,也许会更好。
SELECT Name, SUM(Amount) AS Amount, DATENAME(month, DateColumn) AS Month
FROM Table
GROUP BY Name, DATENAME(month, DateColumn)
DECLARE @FinYearStart DATETIME

DECLARE @FinYearEnd DATETIME

SET @FinYearStart = DATEADD(dd,0, DATEDIFF(dd,0, DATEADD( mm, -(((12 + DATEPART(m, getDate())) - 4)%12), getDate() ) - datePart(d,DATEADD( mm, -(((12 + DATEPART(m, getDate())) - 4)%12),getDate() ))+1 ) )

SET @FinYearEnd = DATEADD(SS,-1,DATEADD(mm,12,@FinYearStart))

SELECT SUM(AMOUNT) AS Amount, 

DATENAME(month, DATECOLUMN) AS Month,

DATEPART(month, DATECOLUMN) AS Month1

FROM TABLENAME where DATECOLUMN between @FinYearStart

AND @FinYearEnd GROUP BY 

DATENAME(month, DATECOLUMN),DATEPART(month, DATECOLUMN)

order by Month1