【发布时间】:2014-09-27 10:14:33
【问题描述】:
前言:我有一个查询,可以根据他们的目标提取销售数据和措施。问题是只有售出商品的人才会出现在给定月份的图表上。最终,每个人都获得了销售并登上了排行榜。为了缓解这个问题,我创建了第二条语句,该语句分配了一个虚拟数据行(用作占位符)并将 datepart(M, SOLD_DATE) = 设置为 datepart(M, getdate()) 以便从第一个开始在板上。
我的问题:如何设置它以在人们添加到董事会时删除占位符?
SELECT
USER_ID,
SOLD_DATE,
DATEPART(M, SALE_ID)
**Target Case Statement in a nutshell**:
insert monthly target value to 1st instance of sold item
else 0
End as 'target_amt' -- this is summed and aggregated in excel chart.
FROM
Sales
UNION ALL
SELECT
USER_ID,
DATEPART(M, getdate()) as SOLD_DATE,
Sale_ID,
TARGET_AMT,
FROM
Sales
WHERE
Sale_ID = **this contains on made up sale_id per person as a place holder.
因此您可以看到,截至每月 1 日,UNION 语句为每个人添加了一个项目。现在,当有人进行销售时如何删除它是个问题。
我正在考虑某种带有“不在”或“除外”的子查询。或者可能是涉及案例陈述的事情???
我会发布完整的查询,但它是一个野兽(8 页)并使用一些 CTE 来派生顶部选择语句。
【问题讨论】:
-
我添加了 sql-server,因为语法看起来像 SQL Server。
-
你能在销售表中发布一个示例数据和想要的结果吗?
标签: sql sql-server union except notin