首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我遇到了将“与`GROUPING`”和“`GROUPING`”相结合的问题。如何纠正?

问我遇到了将“与`GROUPING`”和“`GROUPING`”相结合的问题。如何纠正?
EN

Stack Overflow用户
提问于 2015-07-30 14:35:32
回答 1查看 181关注 0票数 1

我最近被介绍了一个叫做with rollup的特性。我在Excel中为趋势添加了一个报告。问题是,我希望t0.DocDate的日期从最老的日期到最新的日期。

我读了一篇关于:http://mangalpardeshi.blogspot.com/2009/08/rollup-and-order-by.html的文章

我将代码格式化为与本文中的示例类似的代码,但在这样做之后,我得到了以下错误消息:Conversion failed when converting date and/or time from character string.

在查询中是否存在纠正此错误的方法?如果是这样的话,这将是非常感谢任何人谁可以帮助我!

我的代码是:

代码语言:javascript
复制
select  CASE WHEN GROUPING(t0.DocDate) = 1 THEN 'Total' ELSE T0.DocDate END AS 'DocDate',
        COUNT(T1.Itemcode) [# of Cross Sell],
        SUM(T1.Price * t1.Quantity) [Cross Sell $]

from ORDR t0 inner join RDR1 t1 on t0.DocEntry=t1.DocEntry

where t0.CANCELED <> 'Y'
and t1.U_SII_XSell = 'Y'

group by t0.DocDate WITH ROLLUP
order by GROUPING(t0.docdate);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-30 14:42:09

如果您希望对rollup列值使用DocDate,则需要将您的VARCHAR转换为'Total'。列不能同时为两种类型。

若要按日期对其进行排序,并使“总计”列保持在最后,只需将t0.DocDate添加到ORDER BY子句中即可。

代码语言:javascript
复制
select  CASE WHEN GROUPING(t0.DocDate) = 1 THEN 'Total' ELSE Cast(T0.DocDate As Varchar(15)) END AS 'DocDate',
        COUNT(T1.Itemcode) [# of Cross Sell],
        SUM(T1.Price * t1.Quantity) [Cross Sell $]

from ORDR t0 inner join RDR1 t1 on t0.DocEntry=t1.DocEntry

where t0.CANCELED <> 'Y'
and t1.U_SII_XSell = 'Y'

group by t0.DocDate WITH ROLLUP
order by GROUPING(t0.docdate), t0.docdate;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31726724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档