【发布时间】:2016-03-01 18:17:40
【问题描述】:
我试图找出最简单的方法,从同一个表中选择一个列两次,但在更大的查询中并排显示两个不同的 WHERE 条件(如下)。实现这一目标的最佳方法是什么?
USE PDX_SAP_USER
GO
SELECT P.PLANT_CODE,
P.STOCK_CATEGORY,
P.MATERIAL,
P.DISTRIBUTION_VERSION_CODE,
P.PERIOD_CODE,
P.REQUIREMENTS_DATE,
P.PLANNED_QTY AS 'REM PLAN QTY',
P.VERSION_IND_FLAG,
P.SIZE_LITERAL,
P.WITHDRAWN_QUANTITY,
P.TECHNICAL_INDEX,
P.PLANNED_QTY + P.WITHDRAWN_QUANTITY AS 'ORIGINAL FCST QTY'
FROM VW_PLANNED_REQMNTS_TXT P
WHERE P.PLANT_CODE IN ('6040','6041')
AND P.STOCK_CATEGORY IN ('A60385000','A60385003')
AND P.DISTRIBUTION_VERSION_CODE IN ('00','01','ZU','Z2')
AND P.REQUIREMENTS_DATE < GETDATE() - 59
AND P.PLANNED_QTY > 0
ORDER BY P.PLANT_CODE,
P.STOCK_CATEGORY,
P.MATERIAL,
P.REQUIREMENTS_DATE,
P.TECHNICAL_INDEX
【问题讨论】:
-
OOPS - 我希望使用当前日期限制显示列 P.PLANNED_QTY,然后还显示它必须在将来进行比较的限制。
-
可能会提供一些示例数据以及您希望输出的样子。
-
感谢您的回复 - 所以现在这个查询会生成所有列,如下所示。我想准确地生成这个,但是使用另一个 P.PLANNED_QTY 来显示当 WHERE 更改为 > GETDATE() 时的值 - 用于未来的金额。
-
哪一栏是>
GETDATE()?P.REQUIREMENTS_DATE?你想要所有未来的行,还是最早的,还是最后的? -
谢谢保罗。我想按目前的样子投影列 P.PLANNED_QTY,它是整个查询的一部分,从今天开始根据 P.REQUIREMENTS_DATE 回顾 59 天,但如果可能,还添加同一列的投影,其中显示 P 的所有值.PLANNED_QTY 从今天开始由 MATERIAL 捆绑在一起。因此,它将显示 59 天前的计划数量和每种材料的计划数量。感谢所有的帮助。
标签: sql sql-server join