繁体   English   中英

SQL查询使用UNION从SELECT COUNT语句对表求和

[英]SQL query to SUM up tables from SELECT COUNT statement with UNION

我目前正在尝试总结一个MySQL语句的结果,该语句为我提供了几个不同表的行数。

我已经研究了与此有关的stackoverflow的每种解决方案。 不幸的是,我无法找出适合我的情况的正确语法。

我的工作陈述没有总结出来:

SET @shipmentId=456;
SELECT
        (SELECT COUNT(*) FROM Table1 WHERE ShipmentID = @shipmentId)
        UNION ALL
        (SELECT COUNT(*) FROM Table2 WHERE ShipmentID = @shipmentId)
        UNION ALL
        (SELECT COUNT(*) FROM Table3 WHERE ShipmentID = @shipmentId)
        UNION ALL
        (SELECT COUNT(*)FROM Table4 WHERE ShipmentID = @shipmentId)
        UNION ALL
        (SELECT COUNT(*)FROM Table5 WHERE ShipmentID = @shipmentId);

我认为这应该是最接近正确解决方案的方法,但是我不确定(尝试了很多变体):

SET @shipmentId=456;
SELECT SUM(MeasuredValues) FROM
    SELECT(
        (SELECT COUNT(*) FROM Table1 WHERE ShipmentID = @shipmentId) AS MeasuredValues
        UNION ALL
        (SELECT COUNT(*) FROM Table2 WHERE ShipmentID = @shipmentId) AS MeasuredValues
        UNION ALL
        (SELECT COUNT(*) FROM Table3 WHERE ShipmentID = @shipmentId) AS MeasuredValues
        UNION ALL
        (SELECT COUNT(*)FROM Table4 WHERE ShipmentID = @shipmentId) AS MeasuredValues
        UNION ALL
        (SELECT COUNT(*)FROM Table5 WHERE ShipmentID = @shipmentId)  AS MeasuredValues) t1;    

在此先感谢您的帮助。

已经尝试了以下链接: StackOverFlow Solution1

StackOverFlow解决方案2

您可以简单地总结一下您的选择:

SET @shipmentId=456;
SELECT
  (SELECT COUNT(*) FROM Table1 WHERE ShipmentID = @shipmentId)
+
  (SELECT COUNT(*) FROM Table2 WHERE ShipmentID = @shipmentId)
+
  (SELECT COUNT(*) FROM Table3 WHERE ShipmentID = @shipmentId)
+
  (SELECT COUNT(*) FROM Table4 WHERE ShipmentID = @shipmentId)
+
  (SELECT COUNT(*) FROM Table5 WHERE ShipmentID = @shipmentId);

暂无
暂无

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

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