Визит
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
Я уже задавал этот вопрос.(аналогично этому вопросу.)
как связать следующие 2 таблицы, чтобы получить результат, показанный ниже в 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
Это потому, что
Для line 1
таблицы Visit
, noOfContenct
должно быть 2, а для line 4
из Visit
, noOfContent
должно быть 1. Итак, всего 3.
Но согласно этому ответу: для line 1
, noOfContent
равно 3, для line 4
также 3. Тогда общее значение становится равным 6.
Поэтому я спрашиваю, как обновитьэто утверждение.
PS утверждение не даст итоговую сумму, как результат.Вместо этого он будет давать построчное значение.