【发布时间】:2018-04-05 12:45:57
【问题描述】:
我有一张有几行的表。我想要的是我想显示将自动生成的最后一行中特定字段的总和。
我的 SQL 代码:
SELECT
Account,
Amount = SUM(Amount),
EndDate = CASE WHEN GROUPING(EndDate) = 1 THEN 'Total' ELSE EndDate END
FROM Test.dbo.T_OP
GROUP BY Account, EndDate WITH ROLLUP
HAVING GROUPING(Account) =0;
错误信息:
Error converting a string to a date and / or time.
如果我更改 else 部分,我会得到想要的结果,只有我的日期不会显示。
修改后的代码:
SELECT
Account,
Amount = SUM(Amount),
EndDate = CASE WHEN GROUPING(EndDate) = 1 THEN 'Total' ELSE 'FakeDate' END
FROM Test.dbo.T_OP
GROUP BY Account, EndDate WITH ROLLUP
HAVING GROUPING(Account) =0;
输出:
Account Amount EndDate
70000 776,98 FakeDate
70000 776,98 Total
70108 131,8 FakeDate
70108 60,3 FakeDate
70108 101,1 FakeDate
70108 40,8 FakeDate
70108 694,05 FakeDate
70108 1028,05 Total
我怎样才能正确播放日期?
【问题讨论】:
-
您使用的是哪个 dbms?该查询是特定于产品的。
-
你有 2 列
enddate和end_date? -
Microsoft SQL Server 2008 R2。我有一栏
end_date。第二列有错误。
标签: sql sql-server datetime casting