sql - 将新列和变量行添加到 SQL 选择查询作为输出并在其中执行算术运算
问题描述
我正在编写一个用于从表中选择数据的 SQL 查询,并将新列和变量行添加到 SQL 选择查询作为输出并在其中执行算术运算。
因此,选择查询会产生所需的结果,但我需要根据以下条件添加一个将包含的列:PERIOD_TYPE
-DAY, WTD, MTD, YTD
DAY = @date_using(例如“2020-12-22”)
WTD = @date_using 到 @date_using 的一周的开始星期一日期(例如 2020 年 12 月 21 日到 2020 年 12 月 22 日)
MTD = @date_using 到 @date_using 的月份开始星期一日期(例如,2020 年 12 月 1 日到 2020 年 12 月 22 日)
YTD = @date_using 到 @date_using 的年份的开始星期一日期(例如 2020 年 1 月 1 日到 2020 年 12 月 22 日)
此外,还要添加一列,以SALES_LY_USD
显示列数据的总和。
因此,SALES_LY_USD
它将显示A.TY_SALES
以下标准的总和:-
DAY : A.TY_SALES
'2020-12-22' 的总和
WTD : A.TY_SALES
(@date_using 到 @date_using 的周起始星期一日期)的总和(例如A.TY_SALES
2020 年 12 月 21 日到 2020 年 12 月 22 日的总和)
MTD = A.TY_SALES
(@date_using 到 @date_using 的月份的开始星期一日期)的总和(例如A.TY_SALES
2020 年 12 月 1 日到 2020 年 12 月 22 日的总和)
YTD = A.TY_SALES
(@date_using 到 @date_using 的年份的起始星期一日期)的总和(例如A.TY_SALES
2020 年 1 月 1 日至 2020 年 12 月 22 日的总和)
因此,示例输出表应该是:-
国家 | PERIOD_TYPE | SALES_LY_USD |
---|---|---|
ID | 天 | 15 |
ID | WTD | 30 |
ID | MTD | 300 |
ID | 年初至今 | 3600 |
我正在编写下面的代码,但我无法在 Period_Type 列中获取上面共享的这 4 个 Period_Types,也无法使用它们在 SALES_LY_USD 列中显示总和。
DECLARE @date DATE=DATEADD(DAY,-1,CAST(GETDATE() AS DATE))
DECLARE @sale_date_ly DATE
DECLARE @date_using DATE = '2020-12-07'
DECLARE @DAY_PERIOD_TYPE_TY DATE
DECLARE @WTD_PERIOD_TYPE_TY DATE
DECLARE @MTD_PERIOD_TYPE_TY DATE
DECLARE @YTD_PERIOD_TYPE_TY DATE
SET @sale_date_ly = (select last_year_same_dd_date from analyse.HKMN_MD_TIME where display_date=@date_using)
SET @DAY_PERIOD_TYPE_TY = (select Date from [dbo].[DimDate] where date=@date_using)
SET @WTD_PERIOD_TYPE_TY = (SELECT CONCAT (Convert(date,DATEADD(wk,DATEDIFF(wk,0,@date_using),0)), ' To ', @date_using )
SET @MTD_PERIOD_TYPE_TY = (SELECT CONCAT ((select FirstDayOfMonth from [dbo].[DimDate] where date=@date_using ), ' To ', @date_using )
SET @YTD_PERIOD_TYPE_TY = (SELECT CONCAT ((select FirstDayOfYear from [dbo].[DimDate] where date=@date_using ), ' To ', @date_using )
SELECT
A.COUNTRY As COUNTRY,
@sale_date_ly As PERIOD_TYPE ,
sum(B.TY_SALES) AS SALES_LY_USD
from [SE].[SHAPE] A
INNER JOIN [SE].[LF_SHAPE] B
ON A.COUNTRY=B.COUNTRY
解决方案
推荐阅读
- directed-acyclic-graphs - 如何设置依赖于动态流的动态流
- python - PyQt5中的所有样式是什么
- python - 您可以从原始数据框中取消堆叠计算列吗?
- node.js - 混淆使用 Node.js Passport 模块身份验证
- visual-studio-code - 视觉工作室代码自动填充文件内容
- python - 按钮/元素不可交互
- c - Code Composer Studio:未解析的符号仍然存在
- php - 如何在没有插件的情况下从特定类别的帖子的 URL 中删除日期?
- linux - 在 Haskell 中,在检索时间的同时同步硬件时钟会导致严重的问题吗?
- apache-spark - 我们有火花连续处理的监听器吗?