这是需要两个SQL Server 2005和2008年的工作,而不必调整兼容级别(如果这是可以做到)显示汇总在最后一行只有
Select
CASE GROUPING([Store ID]) WHEN 1 THEN '[Store ID]' ELSE [Store ID] END [Store ID],
CASE GROUPING([Cashier]) WHEN 1 THEN '[Cashier]' ELSE [Cashier] END [Cashier],
CASE GROUPING([Register]) WHEN 1 THEN '[Register]' ELSE [Register] END [Register],
sum([Amex]) AS [Amex],
sum([C.Card]) AS [C.Card],
sum([Cash]) AS [Cash],
sum([House Acct]) AS [House Acct],
sum([MasterCard]) AS [MasterCard],
sum([Str Cr]) AS [Str Cr],
sum([Visa/MC]) AS [Visa/MC]
from
#a13
group by
[Store ID],
[Cashier],
[Register]
with rollup
这将返回:
我怎样才能调整代码而不是实际显示卷起的行?意思是删除最后3行或与[]有什么关系。我需要在SQL 2005中使用Rollup
,因此我可以使用case grouping
。
你有试过什么吗? – Kermit 2013-02-28 22:02:25
我不知道该怎么做。无法使用'GROUPING SETS(())',因为2005年不支持它(或者需要将兼容性调整为90,这是我无法做到的,忘记了为什么我不能使用它的实际原因)。我可以删除'WITH ROLLUP',它可以在2008年运行,但是2005年需要它。 – JohnZ 2013-02-28 22:07:27