2017-08-28 18 views
0

2つの別個のテーブルからのカウントを組み合わせた次のクエリがあります。私はそれを日付範囲に基づいてフィルタリングできるようにしたい。ここで私が働いているクエリは次のとおりです。クエリをカウントするために日付範囲フィルタを追加する方法

SELECT combined.name, Count(combined.id) AS CountOfid 
FROM (select ecmreq as name, entryid as id from log 
    union all 
    select comauthor, comid from elcom 
) AS combined 
GROUP BY combined.name; 

ログはLOGDATEと呼ばれる日付フィールドを持つ場合とエルコム私は2017年8月21日のような範囲の間ですべてのカウントを取得するためにこれを設定する方法をフィールドと呼ばれるcomdateを持っています2011年8月28日?

答えて

1

サブクエリのWHEREに含めるだけです。素晴らしい仕事

SELECT combined.name, Count(combined.id) AS CountOfid 
FROM (select ecmreq as name, entryid as id from log WHERE logdate >= '2017-08-21' AND logdate <= '2017-08-28' 
    union all 
    select comauthor, comid from elcom WHERE comdate >= '2017-08-21' AND comdate <= '2017-08-28' 
) AS combined 
GROUP BY combined.name; 
+0

感謝。 – spacerobot

+0

@spacerobot:アクセスでは、日付表現は常に8進法でラップされるべきです: '#2017-08-21#'。 – Gustav

0

LOGDATE> = '2017年8月21日' AND < = '2017年8月28日' あなたが探しているもの

多かれ少なかれLOGDATEですか?

もちろん、elcomも同様の方法で確認できます。実際の境界日を含める必要がない場合は、比較を微調整できます。

1
SELECT combined.name, Count(combined.id) AS CountOfid 
FROM (select ecmreq as name, entryid as id, logdate as recdate from log 
    union all 
    select comauthor, comid, comdate as recdate from elcom 
) AS combined 
where combined.recdate between '08/21/2017' and '08/28/2017' 
GROUP BY combined.name; 
関連する問題