2013-05-04 40 views
1

下面是我的表如何在MySQL中正確使用<<colName>>?

| 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; 
+0

什麼TBL1和TBL2? GROUP BY是您需要的一個表格,但您不清楚問題的第二部分需要什麼。你需要SUM不算COUNT – sashkello 2013-05-04 11:05:56

+0

好吧對不起,我的查詢可能不正確。我希望我的問題很清楚。你能幫我正確的查詢嗎? – user001 2013-05-04 11:07:24

回答

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 

OUTPUT:

| COUNT | system | 
|  8 | sys1 | 
|  7 | sys2 | 
+0

@Alnitak - 請參閱[修訂版](http://stackoverflow.com/posts/16373573/revisions)OP通過編輯刪除它。 – hims056 2013-05-04 11:12:19

+1

謝謝hims056。它完美的作品 – user001 2013-05-04 11:20:45

+0

@ user1815809 - 很高興聽到這一點。順便提一下,在提問或回答問題之前,請查看我們的[Markdown幫助](http://stackoverflow.com/editing-help)。 :) – hims056 2013-05-04 11:22:24

相關問題