繁体   English   中英

如何合并两个查询?

[英]How to merge two queries?

这是第一个查询:

SELECT 
    SUM(otkupbody_mobile.bruto) AS bruto,
    SUM(otkupbody_mobile.neto) AS neto,
    SUM(otkupbody_mobile.muvla) AS muvla,
    COUNT(*) AS broj_bali
FROM otkupbody_mobile,
     otkupheader_mobile 
WHERE
(
    (otkupheader_mobile.unique_id=otkupbody_mobile.unique_id) 
)

这是第二个:

SELECT
    SUM(otkupbody.bruto) AS bruto,
    SUM(otkupbody.neto) AS neto,
    SUM(otkupbody.muvla) AS muvla,
    COUNT(*) AS broj_bali
FROM otkupbody,
     otkupheader
WHERE
(
    (otkupheader.unique_id=otkupbody.unique_id) 
)

如何创建一个查询,以便从两个查询中获得结果?

尝试:

SELECT 
SUM(otkupbody_mobile.bruto) AS bruto,
SUM(otkupbody_mobile.neto) AS neto,
SUM(otkupbody_mobile.muvla) AS muvla,
COUNT(*) AS broj_bali
FROM otkupbody_mobile,
otkupheader_mobile 
WHERE
(
(otkupheader_mobile.unique_id=otkupbody_mobile.unique_id) 
)
UNION ALL
SELECT 
SUM(otkupbody.bruto) AS bruto,
SUM(otkupbody.neto) AS neto,
SUM(otkupbody.muvla) AS muvla,
COUNT(*) AS broj_bali
FROM otkupbody,
otkupheader
WHERE
(
(otkupheader.unique_id=otkupbody.unique_id) 
)

如果您不需要重复项,而不是UNION ALL使用普通UNION

如果要将合并在一起,可以使用此方法。 输出将是一个行与所有提及栏目:

Select  A.*
,   B.*
    From    (
    SELECT  SUM(otkupbody_mobile.bruto) AS bruto,
        SUM(otkupbody_mobile.neto) AS neto,
        SUM(otkupbody_mobile.muvla) AS muvla,
        COUNT(*) AS broj_bali
        FROM otkupbody_mobile,
        otkupheader_mobile 
        WHERE   otkupheader_mobile.unique_id=otkupbody_mobile.unique_id
    )   As  A
    ,   (
    SELECT  SUM(otkupbody.bruto) AS bruto,
        SUM(otkupbody.neto) AS neto,
        SUM(otkupbody.muvla) AS muvla,
        COUNT(*) AS broj_bali
        FROM otkupbody,
        otkupheader
        WHERE
        (
        (otkupheader.unique_id=otkupbody.unique_id) 
        )
    )   As  B

或者,如果要合并行,可以在查询之间使用UNION子句。 对于使用union您应该注意两个结果必须具有相同的列。 输出将是行,第一个查询的列。 像这样:

    SELECT  SUM(otkupbody_mobile.bruto) AS bruto,
        SUM(otkupbody_mobile.neto) AS neto,
        SUM(otkupbody_mobile.muvla) AS muvla,
        COUNT(*) AS broj_bali
        FROM otkupbody_mobile,
        otkupheader_mobile 
        WHERE   otkupheader_mobile.unique_id=otkupbody_mobile.unique_id
UNION
    SELECT  SUM(otkupbody.bruto) AS bruto,
        SUM(otkupbody.neto) AS neto,
        SUM(otkupbody.muvla) AS muvla,
        COUNT(*) AS broj_bali
        FROM otkupbody,
        otkupheader
        WHERE
        (
        (otkupheader.unique_id=otkupbody.unique_id) 
        )

使用UNION ALL。 总而言之,在结果上使用SUM。 像这样:

select sum(bruto), sum(neto), sum(muvla), sum(broj_bali) from (
  SELECT 
  SUM(otkupbody_mobile.bruto) AS bruto,
  SUM(otkupbody_mobile.neto) AS neto,
  SUM(otkupbody_mobile.muvla) AS muvla,
  COUNT(*) AS broj_bali
  FROM otkupbody_mobile,
  otkupheader_mobile 
  WHERE
  (
  (otkupheader_mobile.unique_id=otkupbody_mobile.unique_id) 
  )
    UNION ALL
  SELECT 
  SUM(otkupbody.bruto) AS bruto,
  SUM(otkupbody.neto) AS neto,
  SUM(otkupbody.muvla) AS muvla,
  COUNT(*) AS broj_bali
  FROM otkupbody,
  otkupheader
  WHERE
  (
  (otkupheader.unique_id=otkupbody.unique_id) 
  )

SQL小提琴示例

暂无
暂无

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

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