Пожалуйста, смотрите на этот вопрос, чтобы получить больше контекста: question 1 Я создал список информации с помощью функции поворота, используя следующий код нижеSQL функция Pivot, чтобы получить верхнее поле примечания
WITH List AS
(
SELECT 'x' AS Company, 'Call' AS ContactType, '01/01/2016' AS StartTime UNION ALL
SELECT 'x' AS Company, 'Call' AS ContactType, '02/01/2016' AS StartTime UNION ALL
SELECT 'x' AS Company, 'Meeting' AS ContactType, '02/01/2016' AS StartTime UNION ALL
SELECT 'x' AS Company, 'Email' AS ContactType, '03/01/2016' AS StartTime UNION ALL
SELECT 'y' AS Company, 'Meeting' AS ContactType, '01/01/2016' AS StartTime UNION ALL
SELECT 'y' AS Company, 'Email' AS ContactType, '01/02/2016' AS StartTime UNION ALL
SELECT 'y' AS Company, 'Call' AS ContactType, '02/02/2016' AS StartTime UNION ALL
SELECT 'z' AS Company, 'Call' AS ContactType, '09/01/2016' AS StartTime UNION ALL
SELECT 'z' AS Company, 'Call' AS ContactType, '24/01/2016' AS StartTime UNION ALL
SELECT 'z' AS Company, 'Meeting' AS ContactType, '10/01/2016' AS StartTime UNION ALL
SELECT 'z' AS Company, 'Meeting' AS ContactType, '06/01/2016' AS StartTime
)
SELECT Company, Call, Meeting, Email
FROM
(
SELECT StartTime, ContactType, Company
FROM List
) L
PIVOT
(
MAX(StartTime)
FOR ContactType IN (Call, Meeting, Email)
) CT
Это помогает произвести результат таблицы так как:
+---------+------------+------------+------------+
| Company | Call | Meeting | Email |
+---------+------------+------------+------------+
| x | 02/01/2016 | 02/01/2016 | 03/01/2016 |
| y | 02/02/2016 | 01/01/2016 | 01/02/2016 |
| z | 24/01/2016 | 10/01/2016 | Null |
+---------+------------+------------+------------+
Я хотел бы добавить это, добавив дополнительную колонку в свой первоначальный запрос. Я хотел бы иметь записи в запросе, как так:
выходWITH List AS
(
SELECT 'x' AS Company, 'Call' AS ContactType, '01/01/2016' AS StartTime, 'blablabla1' as Note UNION ALL
SELECT 'x' AS Company, 'Call' AS ContactType, '02/01/2016' AS StartTime, 'blablabla2' as Note UNION ALL
SELECT 'x' AS Company, 'Meeting' AS ContactType, '02/01/2016' AS StartTime, 'blablabla3' as Note UNION ALL
SELECT 'x' AS Company, 'Email' AS ContactType, '03/01/2016' AS StartTime, 'blablabla4' as Note UNION ALL
SELECT 'y' AS Company, 'Meeting' AS ContactType, '01/01/2016' AS StartTime, 'blablabla5' as Note UNION ALL
SELECT 'y' AS Company, 'Email' AS ContactType, '01/02/2016' AS StartTime, 'blablabla6' as Note UNION ALL
SELECT 'y' AS Company, 'Call' AS ContactType, '02/02/2016' AS StartTime, 'blablabla7' as Note UNION ALL
SELECT 'z' AS Company, 'Call' AS ContactType, '09/01/2016' AS StartTime, 'blablabla8' as Note UNION ALL
SELECT 'z' AS Company, 'Call' AS ContactType, '24/01/2016' AS StartTime, 'blablabla9' as Note UNION ALL
SELECT 'z' AS Company, 'Meeting' AS ContactType, '10/01/2016' AS StartTime, 'blablabla10' as Note UNION ALL
SELECT 'z' AS Company, 'Meeting' AS ContactType, '06/01/2016' AS StartTime, 'blablabla11' as Note
)
В таблице я хотел бы произвести это:
+---------+------------+------------+------------+------------+
| Company | Call | Meeting | Email | Note |
+---------+------------+------------+------------+------------+
| x | 02/01/2016 | 02/01/2016 | 03/01/2016 | blablabla4 |
| y | 02/02/2016 | 01/01/2016 | 01/02/2016 | blablabla7 |
| z | 24/01/2016 | 10/01/2016 | Null | blablabla9 |
+---------+------------+------------+------------+------------+
Теперь хитрый бит. Я хотел бы, чтобы эта заметка была выбрана как последняя нота, основанная на форме контакта. В верхней строке примечание: blablabla4 выбирается, потому что последний контакт по электронной почте '03/01/2016 ', поэтому он выбирает эту заметку.
Кто-нибудь есть идеи, как я мог бы достичь этого, не используя sub-запрос моих собственных данных.
Возможно, мне нужно будет добавить это в новый вопрос, однако, как бы показать заметку только факторингом в звонках и встречах, а не в электронной почте. ? –
@RichardThompson Один момент –
@RichardThompson См. Обновленный ответ –