SQL和联接问题
我再次向您寻求进一步的帮助:我已经能够连接两个查询,生成具有不同值的重复列,但是我仍然面临着一个整体的查询,它会为每种尺寸生成许多结果,文字和技术比例为1:1。我如何才能生成一个只为每种尺寸显示一次每种材质的查询?提前感谢并感谢您的所有帮助:SQL和联接问题,sql,join,sum,Sql,Join,Sum,我再次向您寻求进一步的帮助:我已经能够连接两个查询,生成具有不同值的重复列,但是我仍然面临着一个整体的查询,它会为每种尺寸生成许多结果,文字和技术比例为1:1。我如何才能生成一个只为每种尺寸显示一次每种材质的查询?提前感谢并感谢您的所有帮助: SELECT * FROM (SELECT P.PLANT_CODE, P.STOCK_CATEGORY, P.MATERIAL, P.D
SELECT *
FROM
(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) AS P1
JOIN
(SELECT
SUM(P.PLANNED_QTY) AS 'FUTURE_FCST',
P.MATERIAL,
P.TECHNICAL_INDEX,
P.SIZE_LITERAL
FROM VW_PLANNED_REQMNTS_TXT P
WHERE P.REQUIREMENTS_DATE > GETDATE()
AND P.PLANNED_QTY > 0
GROUP BY P.PLANNED_QTY,
P.MATERIAL,
P.TECHNICAL_INDEX,
P.SIZE_LITERAL) AS P2
ON P1.MATERIAL = P2.MATERIAL
AND P1.TECHNICAL_INDEX = P2.TECHNICAL_INDEX`
ORDER BY P1.MATERIAL,
P1.TECHNICAL_INDEX;
我想我可能已经解决了这个问题-似乎我不需要在GROUP BY子句中包含P.PLANNED_QTY,因为它是一个聚合函数。到目前为止看起来还不错,但如果你们发现任何可疑的地方,请告诉我。哦,还有一个问题-我有GETDATE-59,但我正在重建的Access查询有一个奇怪的函数,我从未见过您在运行报告的一周中输入一个数字…SQL Server中有类似的东西吗?没有,你不需要团队中的计划数量,因为这几乎肯定会导致结果不正确;您可能不需要在WHERE子句中引用它,因为它不会影响总和。。。。我还将非聚合查询提升一个级别,您不需要在这里执行子查询。您的RDBMS供应商/版本是什么?我们能得到样本源数据和期望的结果吗?可以使用更好的方法,例如使用OVER子句…使用SQLServerManagementStudio 2012。您必须原谅我,我不确定上传数据的最佳方式是什么?从技术上讲,SQL Server Management Studio 2012不是您的数据库,而是一个与之交互的工具,尽管这意味着您的数据库是SQL Server 2012。示例数据通常只是作为一个格式化的表格发布。查看一些示例的其他问题,通常只包含“必需”列,即,删除仅在SELECT子句中引用的大多数列。你对未来的总预测进行了汇总,但只是与有限的历史数据集进行比较,为什么?这似乎有点奇怪。。。