我有2个疑问,我需要在同一行联系在一起:非程序员无法获得子查询与汇总的总和
SELECT pvp.part_no, pvp.name,
Max(convert(varchar(10), pc.recalc_date, 101)) as 'Previous Cost Date',
Max(pc.cost) as 'Previous Cost',
Min(convert(varchar(10),pc2.recalc_date, 101)) as 'Latest Cost Date',
Min (pc2.cost) as 'Latest Cost'
FROM part_v_part as pvp
JOIN part_v_part_cost as pc ON pvp.part_key = pc.part_key
Left outer join part_v_part_cost as pc2 on
pvp.part_key = pc2.part_key and
pc2.recalc_date > pc.recalc_date
Join part_v_container pvc on pc.part_key = pvc.part_key
WHERE pvp.part_status <> 'inactive'
AND pvp.part_status <> 'obsolete'
AND pc2.recalc_date between '1/01/2017' and '1/31/2017'
AND pvc.active = 1
AND pvc.container_status = 'OK'
AND pvp.part_no = '90-0018'
GROUP BY pvp.part_no, pvp.name, pvp.part_key
-- =====================================================================
SELECT PVP1.Part_No AS 'Part No',
PVp1.Name AS 'Description',
PVP1.Revision AS 'Rev',
SUM(pvc1.quantity) AS 'QOH at cost update'
FROM Part_V_Container pvc1
JOIN Part_V_Part pvp1 ON pvc1.Part_Key = pvp1.Part_Key
WHERE pvc1.active = 1
AND pvc1.container_status = 'OK'
AND pvc1.add_date <= '1/6/17'
AND pvp1.part_no = '90-0018'
GROUP BY PVP1.Part_No,PVP1.Name, PVP1.Revision
下面是我2个查询的结果。我需要将来自第二个查询的成本更新字段中的QOH集成到第一个查询中。 我已经花了几天时间研究这个问题,并且不断收到类似于子查询不能包含聚合函数的错误。
让事情更糟糕的是我正在使用的sql工具被嵌入到ERP系统中,所以我不知道正在使用哪个版本的SQL。我能说的最好的是TSQL?
part_no | name | Previous Cost Date | Previous Cost | Latest Cost Date | Latest Cost
1 | 90-0018 PISTON, DRIVEN | 07/19/2016 | 28.93685 | 01/06/2017 | 39.16178
行计数:1个
部件号在成本更新说明启库存量
1 90-0018活塞驱动的51.00000 行计数:1
加入你怎么想从第二个查询的结果匹配到第一个查询?它们分组在不同的领域,因此可能不匹配1对1。你只是想通过零件号来匹配它们吗? – SteveR
应该有一列或一组列可用于“整合”数据。 part_no是否足够? –
是的,我想通过零件编号匹配它们。 –