星空网 > 软件开发 > 数据库

给定一张表(列有月份,销售额),要求查询出月份、本月销售额、上月销售额这三个结果,如果当月上个月的销售额不存在就显示为“*”。

刚逛论坛,发现一个这样的问题,如果不建立一个新的月份的表,可以用CET来解决。

给定一张表(列有月份,销售额),要求查询出月份、本月销售额、上月销售额这三个结果,如果当月上个月的销售额不存在就显示为“*”。

if exists (select * from sysobjects where id = object_id(N'[tb2]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [tb2] CREATE TABLE tb2(ID INT IDENTITY,SALEDATE DATETIME,AMOUNT FLOAT)INSERT INTO tb2SELECT '2015-05-02',20.1INSERT INTO tb2SELECT '2015-02-02',24.1INSERT INTO tb2SELECT '2015-03-02',10.4INSERT INTO tb2SELECT '2015-05-12',27.8INSERT INTO tb2SELECT '2015-06-02',70.13INSERT INTO tb2SELECT '2015-06-12',90.31INSERT INTO tb2SELECT '2016-01-06',30.22INSERT INTO tb2SELECT '2016-02-08',5.7

插入后显示表的数据

SELECT * FROM tb2

给定一张表(列有月份,销售额),要求查询出月份、本月销售额、上月销售额这三个结果,如果当月上个月的销售额不存在就显示为“*”。

用以下sql跑出所需要的结果

WITH MON as(select CONVERT(VARCHAR(7),GETDATE(),120) AS MOUNION SELECT CONVERT(VARCHAR(7),DATEADD(M,-1,GETDATE()),120) AS MO)SELECT MO AS MONTH,CASE WHEN SUM(ISNULL(AMOUNT,0))=0 THEN '*'ELSE CAST(SUM(ISNULL(AMOUNT,0)) AS VARCHAR(10)) END AS SUM_AMOUNT FROM Mon LEFT JOIN tb2 ON MO=CONVERT(VARCHAR(7),SALEDATE,120)GROUP BY MO

给定一张表(列有月份,销售额),要求查询出月份、本月销售额、上月销售额这三个结果,如果当月上个月的销售额不存在就显示为“*”。

如果还有其他好的方法,希望互相交流下,谢谢!




原标题:给定一张表(列有月份,销售额),要求查询出月份、本月销售额、上月销售额这三个结果,如果当月上个月的销售额不存在就显示为“*”。

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

Idvert 瓦特:https://www.goluckyvip.com/tag/10868.html
跨境物流通:https://www.goluckyvip.com/tag/10869.html
创业一年:https://www.goluckyvip.com/tag/1087.html
跨境智汇:https://www.goluckyvip.com/tag/10870.html
耀天下集团:https://www.goluckyvip.com/tag/10871.html
Gearbest:https://www.goluckyvip.com/tag/10872.html
川藏线自驾游要怎么走才比较划算呢?:https://www.vstour.cn/a/411240.html
去日本入住酒店,东西随意用却有一个特殊“要:https://www.vstour.cn/a/411241.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流