【发布时间】:2014-02-14 17:57:39
【问题描述】:
我才刚刚开始研究 SQL。
我有一个 SQL Server 2008 r2 数据库,它将返回两个字段 DocDate 和 InvValue。我需要将 InvValues 总结为今天日期的 MTD 和 YTD 所以它看起来像
**Period** /////// **Total value**
MTD ////////////111111.11
YTD /////////////999999.99
我已经进行了相当多的谷歌搜索,并且可以使用 SUM 和 DATEPART 进行其中的一项,但我一直在尝试同时进行这两项。
谁能给我一些伪代码,可以帮助我进一步搜索。
谢谢@Gordon Linoff,这对我很有帮助,我学到了一些东西,将来我会觉得很有用。 我的代码现在看起来像:
SELECT
SUM(CASE WHEN YEAR(T1.[DocDate]) = YEAR(GETDATE()) THEN T0.[TotalSumSy] END) AS YTD,
SUM(CASE WHEN YEAR(T1.[DocDate]) = YEAR(GETDATE()) AND MONTH(T1.[DocDate]) = MONTH(GETDATE()) THEN T0.[TotalSumSy] END) AS MTD
FROM [dbo].[INV1] T0 INNER JOIN [dbo].[OINV] T1 ON T1.[DocEntry] = T0.[DocEntry]
但是我现在明白了
YTD.........MTD
99999.99....111111.11
我需要
YTD........99999.99
MTD........11111.11
我们将不胜感激。
【问题讨论】:
标签: sql sql-server sql-server-2008-r2