2011-07-20 5 views
2

上の異なるテーブルからカウント欄私は、次のクエリを持っている:のMySQL:特定の時間枠

SELECT SUM(COUNTED) AS TCOUNTED 
    FROM (SELECT COUNTED FROM `clicks`.`t1` 
      UNION ALL 
      SELECT COUNTED FROM `clicks`.`t2` 
      UNION ALL 
      SELECT COUNTED FROM `clicks`.`t3` 
     ) AS TMP 

どこで、どのように私は時間の制約を追加するには?私はそれが特定の日付の間にのみ数えてほしい... MySQLのnoobnessのため申し訳ありません。

ありがとうございます!

+0

テーブルに比較する日付の列がありますか? – Cfreak

答えて

3
SELECT SUM(COUNTED) AS TCOUNTED 
    FROM (SELECT COUNTED FROM `clicks`.`t1` WHERE somedatecol BETWEEN somedate AND somedate 
      UNION ALL 
      SELECT COUNTED FROM `clicks`.`t2` WHERE somedatecol BETWEEN somedate AND somedate 
      UNION ALL 
      SELECT COUNTED FROM `clicks`.`t3` WHERE somedatecol BETWEEN somedate AND somedate 
     ) AS TMP` 

http://dev.mysql.com/doc/refman/5.0/en/select.html

2

私はあなたの最善の策は、UNION文の前に、各サブ選択内部where句を含めることであると思うだろう。

SELECT SUM(COUNTED) AS TCOUNTED FROM 
(SELECT COUNTED FROM clicks.t1 WHERE <fieldname> BETWEEN '<date1>' AND '<date2>' 
    UNION ALL 
SELECT COUNTED FROM clicks.t2 WHERE <fieldname> BETWEEN '<date1>' AND '<date2>' 
    UNION ALL 
SELECT COUNTED FROM clicks.t3 WHERE <fieldname> BETWEEN '<date1>' AND '<date2>') 
AS TMP; 

もちろん、クエリで達成しようとしているものに関連しています。

関連する問題