У меня есть таблицы «Клиенты» с клиентами деталей и таблицы «ВЫЗОВ», где я храню результат каждого PhoneCallSQL Server 2012 Объединение записей в OUTER APPLY связанный таблицу
Когда мне нужно получить список клиентов Я должен позвонить Я использую этот запрос
SELECT *
FROM (
SELECT TOP (50) S.ID,S.URL,S.Phone,S.Email
FROM dbo.Customers AS S
WHERE URL is not null and City like 'Berl%'
ORDER BY S.ID
) AS S
OUTER APPLY (
SELECT TOP (3) I.CalledOn, I.Answer
FROM dbo.Calls AS I
WHERE S.URL = I.URL
ORDER BY I.CalledOn DESC
) AS I;
, где я получаю список всех клиентов в городе вместе с последними 3 ответами.
Но это возвращает до 3 записей для каждого клиента, в то время как я бы только один и суммировать значение 3 значения CalledOn и ответы в той же записи
быть более ясным: Сейчас:
+-----------+---------------+-------------+------------------+
|Customer 1 | 555-333 333 | 02-10-17 | Call Tomorrow |
+-----------+---------------+-------------+------------------+
|Customer 2 | 555-444 333 | 02-10-17 | Call Tomorrow |
+-----------+---------------+-------------+------------------+
|Customer 1 | 555-333 333 | 02-11-17 | Call Tomorrow |
+-----------+---------------+-------------+------------------+
|Customer 1 | 555-333 333 | 02-12-17 | Stop Calling |
+-----------+---------------+-------------+------------------+
Ожидаемое
+-----------+---------------+--------------------------------+
|Customer 1 | 555-333 333 | 02-12-17 : Call Stop Calling |
| | | 02-11-17 : Call Tomorrow |
| | | 02-10-17 : Call Tomorrow |
+-----------+---------------+-------------+------------------+
|Customer 2 | 555-444 333 | 02-10-17 | Call Tomorrow |
+-----------+---------------+-------------+------------------+
в настоящее время я achieveing это с логикой на стороне сервера, но я уверен, что Ĉ сделать, проще и лучше с TSQL
Можно указать направление?
Благодаря
yessss !! , к сожалению, нужно использовать версию 2012 года .. но это нормально Большое спасибо! – Joe