以下のSQLを使用して3つのテーブルを結合するにはどうすればよいですか?SQLクエリの結合テーブル
----------- ----------- -----------
AdminAccLog StaffAccLog PublicAccLog
----------- ----------- -----------
id id id
name name name
ipaddress ipaddress ipaddress
datetime datetime datetime
task task task
---------------------------------------
データ
AdminAccLog 1 ABC 127.0.0.1 30/7/2017 0:00:00AM Logon
AdminAccLog 2 ABC 127.0.0.1 30/7/2017 1:00:00AM Logon
AdminAccLog 3 ABC 127.0.0.1 31/7/2017 0:00:00AM Logon
StaffAccLog 1 ABC 127.0.0.1 31/7/2017 0:00:00AM Logon
PublicAccLog 1 ABC 127.0.0.1 31/7/2017 0:00:00AM Logon
私は、クエリの結果は(表を挿入していない)
新しいクエリに結果同じテーブルにこのようになりたい
SELECT COUNT(*) AS PublicCount, CONVERT(DATE, datetime) AS PublicDate
FROM PublicAccLog WHERE task = 'Logon'
GROUP BY CONVERT(DATE, datetime)
SELECT COUNT(*) AS StaffCount, CONVERT(DATE, datetime) AS StaffDate
FROM StaffAccLog WHERE task = 'Logon'
GROUP BY CONVERT(DATE, datetime)
SELECT COUNT(*) AS AdminCount, CONVERT(DATE, datetime) AS AdminDate
FROM AdminAccLog WHERE task = 'Logon'
GROUP BY CONVERT(DATE, datetime)
SQLクエリbe:
----------- ---------- ---------- --------- ---------- ---------
PublicCount PublicDate StaffCount StaffDate AdminCount AdminDate
----------- ---------- ---------- --------- ---------- ---------
1 31/7/2017 1 31/7/2017 2 30/7/2017 0:00:00AM
1 31/7/2017 0:00:00AM
もう一つの例:おそらく
編集あなたの質問をし、サンプルデータと望ましい結果を提供します。
一つの方法は、
union all
と集計使用しています。前述のように、これは1行の列が互いに関係していないため、SQLで行うのは分かりやすいようには見えません。 –http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-when-asking-a-question/285557と受け入れられた回答 –