1

以下は私のテーブルのデータです

| count(*) | system |
|        2 | sys1   |
|        7 | sys2   |
|        6 | sys1   |

以下のように出力したい

| count(*) | system |
|        8 | sys1   |
|        7 | sys2   |

それ、どうやったら出来るの?
以下は私が使用しているクエリです。誰がこれで何が悪いのか教えてもらえますか?

select * from 

(select count(*),system from tbl1 where creationDate < CURDATE() AND creationDate >= CURDATE() - INTERVAL 1 DAY group by system 

UNION ALL 

select count(*),system from tbl2 where creationDate < CURDATE() AND creationDate >= CURDATE() - INTERVAL 1 DAY group by system) as tbl3 group by system;
4

1 に答える 1

2

これを実現するには、サブクエリを使用する必要があります。

これを試して:

SELECT SUM(Total) AS `Count`, system
FROM
(
    SELECT COUNT(*) AS Total, system FROM tbl1 
            WHERE creationDate < CURDATE() 
              AND creationDate >= CURDATE() - INTERVAL 1 DAY GROUP BY system
    UNION ALL
     SELECT COUNT(*) AS Total, system FROM tbl2 
            WHERE creationDate < CURDATE() 
              AND creationDate >= CURDATE() - INTERVAL 1 DAY GROUP BY system
) A
GROUP BY system

出力:

| COUNT | system |
|     8 | sys1   |
|     7 | sys2   |
于 2013-05-04T11:06:13.720 に答える