博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
给定一张表(列有月份,销售额),要求查询出月份、本月销售额、上月销售额这三个结果,如果当月上个月的销售额不存在就显示为“*”。...
阅读量:5357 次
发布时间:2019-06-15

本文共 1055 字,大约阅读时间需要 3 分钟。

刚逛论坛,发现一个这样的问题,如果不建立一个新的月份的表,可以用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

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

转载于:https://www.cnblogs.com/bobozhu/p/5130594.html

你可能感兴趣的文章
描绘应用程序级的信息
查看>>
poj2406-Power Strings
查看>>
php环境搭建脚本
查看>>
FTP主动模式与被动模式说明
查看>>
php 编译常见错误
查看>>
MES架构
查看>>
【Python3 爬虫】15_Fiddler抓包分析
查看>>
高性能JavaScript-JS脚本加载与执行对性能的影响
查看>>
关于标签之间因为换行等问题造成的空白间距问题处理
查看>>
hdu 2767(tarjan)
查看>>
sklearn之分类模型混淆矩阵和分类报告
查看>>
MySQL各存储引擎
查看>>
项目--简单导出CSV文件
查看>>
Oracle session相关数据字典(一)
查看>>
织梦文章内容提取第一张或者多张图片输出
查看>>
C#用正则表达式 获取网页源代码标签的属性或值
查看>>
BZOJ 3399 [Usaco2009 Mar]Sand Castle城堡(贪心)
查看>>
WCF(一) 简单的认知
查看>>
[MFC][DShow]简单例子
查看>>
Luogu P1141 01迷宫【搜索/dfs】By cellur925
查看>>