繁体   English   中英

如何联接两个选择语句

[英]How to Join two select statements

我有四个桌子。 我独立编写了2个查询,这些查询正在运行。 但是我想做的是将这两个查询连接起来并生成一个结果。

这是我的代码

查询#1

SELECT 
    pm.DATE
    ,pm.customer
    ,pm.gp_no AS Gatepass_Num
    ,pf.style
    ,pf.color
    ,pf.batch_no
    ,COUNT(pf.roll_no) AS Roll_QTY
    ,SUM(pf.meter) AS QTY
FROM
    (packinglists_fabrics_items pf
     ,packinglists_main pm 
WHERE 
    pf.p_id = pm.id 
    [AND pm.date between {DateR,RANGE1} and {DateR,RANGE2}] 
    [AND pm.customer_id = "{factory,false}"]
GROUP BY 
    pm.DATE, pm.gp_no, pf.style, pf.color, pf.batch_no)

查询2:

SELECT 
    lo.DATE
    ,lo.customer_name
    ,flo.style
    ,flo.color
    ,flo.batch_no
    ,COUNT(flo.rowno) AS Roll_QTY
    ,SUM(flo.meter) AS QTY_Meter
FROM
    loadinglists_fabrics_items flo, loadinglists lo
WHERE 
    flo.p_id = lo.id 
    [AND lo.date between {DateR,RANGE1} and {DateR,RANGE2}] 
    [AND lo.customer_id = "{factory,false}"]
GROUP BY 
    lo.DATE, flo.style, flo.color, flo.batch_no

batch_no对于loadinglists_fabrics_items表和packinglists_fabrics_items表是唯一的

查询结果1

在此处输入图片说明

查询结果2

在此处输入图片说明

预期产量

在此处输入图片说明

尝试这样,我假设您正在使用SQL Server

SELECT A.*
    ,B.*
FROM (
    SELECT pm.DATE
        ,pm.customer
        ,pm.gp_no AS Gatepass_Num
        ,pf.style
        ,pf.color
        ,pf.batch_no
        ,COUNT(pf.roll_no) AS Roll_QTY
        ,SUM(pf.meter) AS QTY
    FROM packinglists_fabrics_items pf
        ,packinglists_main pm
    WHERE pf.p_id = pm.id
        AND pm.DATE BETWEEN {DateR
                ,RANGE1}
            AND {DateR
                ,RANGE2}
        AND pm.customer_id = "{factory,false}"
    GROUP BY pm.DATE
        ,pm.gp_no
        ,pf.style
        ,pf.color
        ,pf.batch_no
    ) A
INNER JOIN (
    SELECT lo.DATE
        ,lo.customer_name
        ,flo.style
        ,flo.color
        ,flo.batch_no
        ,COUNT(flo.rowno) AS Roll_QTY
        ,SUM(flo.meter) AS QTY_Meter
    FROM loadinglists_fabrics_items flo
        ,loadinglists lo
    WHERE flo.p_id = lo.id
        AND lo.DATE BETWEEN {DateR
                ,RANGE1}
            AND {DateR
                ,RANGE2}
        AND lo.customer_id = "{factory,false}"
    GROUP BY lo.DATE
        ,flo.style
        ,flo.color
        ,flo.batch_no
    ) B ON A.batch_no = B.batch_no

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM