訪問次の2つのテーブルをリンクして、SQL Serverに以下のような結果を得るにはどうすればよいですか? (続き)
LoginID, StaffName, qno, trackno, tmstamp, Service
1, James, 1001, 1, 01-01-2011, No1 (transfer to No2)
2, John, 1002, 2, 01-01-2011, No1
2, John, 1003, 3, 01-01-2011, No1
1, James, 1001, 1, 01-01-2011, No2 (transfered from No1)
2, James, 1003, 3, 01-01-2011, No1 (recall the queue no)
物質
content, trackno, tmstamp
001, 1, 01-01-2011
002, 1, 01-01-2011
001, 2, 01-01-2011
002, 2, 01-01-2011
003, 2, 01-01-2011
001, 3, 01-01-2011
001, 1, 01-01-2011
001, 3, 01-01-2011
002, 3, 01-01-2011
結果
StaffName, tmstamp, noOfQno, noOfContent
James, 01-01-2011, 3, 5
John, 01-01-2011, 2, 4
は、私はすでにこの質問をしました。 (この質問に似ています。)
how to link the following 2 tables to get the result which is shown below in SQL Server?`
、正しい答えはすでにそこにあります。
SELECT StaffName, tmstamp, noOfQno, noOfContent
FROM (
SELECT StaffName, tmstamp, trackno, COUNT(1) noOfQno
FROM Visit
GROUP BY StaffName, tmstamp, trackno
) a LEFT JOIN
(
SELECT trackno, COUNT(1) noOfContent
FROM Matter
GROUP BY trackno
) b
ON b.trackno = a.trackno
しかし、その答えによれば、答えは少し間違っています。私はその答えに応じて取得します
結果ます。..
Result
StaffName, tmstamp, noOfQno, noOfContent
James, 01-01-2011, 3, 6
John, 01-01-2011, 2, 6
、noOfContenct
はVisit
テーブルのline 1
については
BE2とVisit
のline 4
ため、noOfContent
があるべきはずだからですしたがって、全体的には、3。
しかし、その答えによると:line 1
の場合、noOfContent
は3であり、 line 4
についても3.合計値は6になります。
この文を更新する方法を尋ねます。
P.S.その声明は結果のように合計を与えることはありません。代わりに、行単位の値を与えます。
「マター」の主キーは何ですか?したがって、「訪問」の外来キーは何か、それは「マター」を参照していますか?私は正解にちょうど合うソリューションを投稿できると思うが、デザインに深刻な欠陥があるようだ。 Matterの7行目は、そこの1行目と何も変わりません。誰がそれらをどのように区別すべきですか? –
はい。テーブルにはキーがありません。はい、基本的には同じです。それで私はどのように差別化するのか分かりません。 – william