Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL-组合两个Select语句_Sql - Fatal编程技术网

SQL-组合两个Select语句

SQL-组合两个Select语句,sql,Sql,我对该站点有些陌生,对SQL仍然很陌生,我正在尝试在服务器命令操作中为RedPrairie(一个仓库管理系统)编写一个查询。我发现我有权限编写查询,而其中一个自定义DDA效率低下,因为它结合了分段处理单元和分段重量,但没有将已计划出站的和未计划出站的分开 出于这个原因,我试图提出一个查询,但在组合查询时遇到了很多困难。我的查询将使用相同的表,但我希望它将计划的和未计划的列分开。我已尝试进行以下工作: [SELECT addr.host_ext_id destination, (SELEC

我对该站点有些陌生,对SQL仍然很陌生,我正在尝试在服务器命令操作中为RedPrairie(一个仓库管理系统)编写一个查询。我发现我有权限编写查询,而其中一个自定义DDA效率低下,因为它结合了分段处理单元和分段重量,但没有将已计划出站的和未计划出站的分开

出于这个原因,我试图提出一个查询,但在组合查询时遇到了很多困难。我的查询将使用相同的表,但我希望它将计划的和未计划的列分开。我已尝试进行以下工作:

[SELECT addr.host_ext_id destination,
    (SELECT COUNT(DISTINCT iv.lodnum)
       FROM inventory_view iv,
            locmst lm,
            aremst am,
            shipment_line sl,
            shipment sh,
            adrmst addr,
            uc_invlod uil,
            uc_load_grp ulg
      WHERE lm.wh_id = 'MWCCD'
                AND iv.lodnum=uil.lodnum
                AND am.arecod = lm.arecod
                AND am.wh_id = lm.wh_id
                AND lm.stoloc = iv.stoloc
                AND lm.wh_id = iv.wh_id
                AND addr.host_ext_id = ulg.dest_code
                AND ulg.client_id IS NOT NULL
                AND addr.adr_id = sh.rt_adr_id
                AND sl.ship_line_id = iv.ship_line_id
                AND sh.ship_id = sl.ship_id
                AND sh.stop_id IS NULL
                AND am.fwiflg = 1
                AND am.stgflg = 1) AS Unplanned_Hu,
    (SELECT SUM(DISTINCT uil.weight_kg) 
       FROM inventory_view iv,
            locmst lm,
            aremst am,
            shipment_line sl,
            shipment sh,
            adrmst addr,
            uc_invlod uil,
            uc_load_grp ulg
      WHERE lm.wh_id = 'MWCCD'
            AND iv.lodnum=uil.lodnum
            AND am.arecod = lm.arecod
            AND am.wh_id = lm.wh_id
            AND lm.stoloc = iv.stoloc
            AND lm.wh_id = iv.wh_id
            AND addr.host_ext_id = ulg.dest_code
            AND ulg.client_id IS NOT NULL
            AND addr.adr_id = sh.rt_adr_id
            AND sl.ship_line_id = iv.ship_line_id
            AND sh.ship_id = sl.ship_id
            AND sh.stop_id IS NULL
            AND am.fwiflg = 1
            AND am.stgflg = 1) AS Unplanned_Weight_KG, 
(SELECT COUNT(DISTINCT iv.lodnum)
       FROM inventory_view iv,
            locmst lm,
            aremst am,
            shipment_line sl,
            shipment sh,
            adrmst addr,
            uc_invlod uil,
            uc_load_grp ulg
       WHERE lm.wh_id = 'MWCCD'
                    AND iv.lodnum=uil.lodnum
                    AND am.arecod = lm.arecod
                    AND am.wh_id = lm.wh_id
                    AND lm.stoloc = iv.stoloc
                    AND lm.wh_id = iv.wh_id
                    AND addr.host_ext_id = ulg.dest_code
                    AND ulg.client_id IS NOT NULL
                    AND addr.adr_id = sh.rt_adr_id
                    AND sl.ship_line_id = iv.ship_line_id
                    AND sh.ship_id = sl.ship_id
                    AND sh.stop_id IS NOT NULL
                    AND am.fwiflg = 1
                    AND am.stgflg = 1) AS Planned_HU,
    (SELECT SUM(DISTINCT uil.weight_kg)
       FROM inventory_view iv,
            locmst lm,
            aremst am,
            shipment_line sl,
            shipment sh,
            adrmst addr,
            uc_invlod uil,
            uc_load_grp ulg 
      WHERE lm.wh_id = 'MWCCD'
                AND iv.lodnum=uil.lodnum
                AND am.arecod = lm.arecod
                AND am.wh_id = lm.wh_id
                AND lm.stoloc = iv.stoloc
                AND lm.wh_id = iv.wh_id
                AND addr.host_ext_id = ulg.dest_code
                AND ulg.client_id IS NOT NULL
                AND addr.adr_id = sh.rt_adr_id
                AND sl.ship_line_id = iv.ship_line_id
                AND sh.ship_id = sl.ship_id
                AND sh.stop_id IS NOT NULL
                AND am.fwiflg = 1
                AND am.stgflg = 1) AS Planned_Weight_KG
 FROM inventory_view iv,
    locmst lm,
    aremst am,
    shipment_line sl,
    shipment sh,
    adrmst addr,
    uc_invlod uil,
    uc_load_grp ulg        
 WHERE lm.wh_id = 'MWCCD'
        AND iv.lodnum=uil.lodnum
        AND am.arecod = lm.arecod
        AND am.wh_id = lm.wh_id
        AND lm.stoloc = iv.stoloc
        AND lm.wh_id = iv.wh_id
        AND addr.host_ext_id = ulg.dest_code
        AND ulg.client_id IS NOT NULL
        AND addr.adr_id = sh.rt_adr_id
        AND sl.ship_line_id = iv.ship_line_id
        AND sh.ship_id = sl.ship_id
        AND am.fwiflg = 1
        AND am.stgflg = 1
GROUP BY addr.host_ext_id]
问题是,尽管它按我想要的方式分隔列,但无论addr.host\u ext\u id如何,它都计算不正确。每个addr.host\u ext\u id的计划/计划HU数和权重都应该是唯一的


我们将非常感谢您为此提供的任何帮助和时间!另外,我想指出的是,通过使用UNION ALL,我确实尝试了更简单的方法,并且它一直将列组合在一起。

adrmst
表的主查询中的别名更改为子查询中使用的其他名称,例如添加到
addr1
。然后,通过添加到每个子查询条件,可以将
addr1.host\u ext\u id
与每个子查询
addr.host\u ext\u id
连接:

  AND addr.host_ext_id = addr1.host_ext_id
我认为这一修正肯定会有所帮助


也考虑重写查询,使用Gordon Linoff建议的“代码>连接< /代码>语法。这使它更具可读性。

我的第一个帮助是坚持使用显式
join
语法重写查询。如果您正在学习SQL,有一条简单的规则:决不要在
from
子句中使用逗号。我会研究并重写。现在还不习惯加入!哇,事实上就是这样。太疯狂了!现在它们是我一直在寻找的唯一数字。非常感谢你!