2011-08-30 85 views
3

我有以下內容可返回給定類型作業的總開票金額。我現在想把它分解成月總數。我應該如何處理這個月份報告中的月份中的SQL SUM()

SELECT  dbo.jm_job_type.job_type_desc, SUM(dbo.jm_invoice.invoice_amount) AS 'inv tot' 
FROM   dbo.jm_invoice INNER JOIN 
        dbo.jm_job ON dbo.jm_invoice.job_no = dbo.jm_job.job_no INNER JOIN 
        dbo.jm_job_type ON dbo.jm_job.job_type_no = dbo.jm_job_type.job_type_no 
GROUP BY dbo.jm_job_type.job_type_desc 
+2

賈爾斯請查看你的過去的問題。你已經問了7個,並收到了14個回覆。當然有一些是可以接受的。 –

+0

更正 - 謝謝保羅 – giles

回答

1

「落地」 的月份(最有效的方式來獲得一個月+僅一年),然後GROUP BY是」

GROUP BY DATEADD(月,DATEDIFF(MO第n,0,dbo.jm_invoice.YourDate),0)

所以這將是:

SELECT  dbo.jm_job_type.job_type_desc, 
      DATEADD(month,DATEDIFF(month,0, dbo.jm_invoice.YourDate),0) AS MonthYear, 
      SUM(dbo.jm_invoice.invoice_amount) AS 'inv tot' 
FROM   dbo.jm_invoice INNER JOIN 
        dbo.jm_job ON dbo.jm_invoice.job_no = dbo.jm_job.job_no INNER JOIN 
        dbo.jm_job_type ON dbo.jm_job.job_type_no = dbo.jm_job_type.job_type_no 
GROUP BY dbo.jm_job_type.job_type_desc, 
     DATEADD(month,DATEDIFF(month,0, dbo.jm_invoice.YourDate),0) 
0

的年份和月份字段添加到您的SELECT列表中,並把它添加到您的GROUP BY列表中的所有提示

1

使用有問題的日期在SQL Server DATEPART函數在您的集團通過這樣的:

GROUP BY 
    DatePart(yy, dbo.jm_invoice.some_date), 
    DatePart(mm, dbo.jm_invoice.some_date), 
    dbo.jm_job_type.job_type_desc