2017-02-27 37 views
0

我有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

+0

加入你怎么想从第二个查询的结果匹配到第一个查询?它们分组在不同的领域,因此可能不匹配1对1。你只是想通过零件号来匹配它们吗? – SteveR

+0

应该有一列或一组列可用于“整合”数据。 part_no是否足够? –

+0

是的,我想通过零件编号匹配它们。 –

回答

0

如果我理解的需要,你必须:

SELECT * FROM 
(
Paste first query here 
) a 
JOIN 
(
Paste second query here 
) b 
ON a.part_no = b.[Part No] 

这会给你所有的colu两种查询的MNS使用PART_NO值

希望这有助于

+0

我好亲近!我收到以下消息:执行SQL查询期间发生以下错误: 无效的列名称'part_no'。 –

+0

哦,明白了 - 我会编辑答案 –

+0

完美,我懂了它的工作原理;谢谢大家 –