Как использовать IF или CASE для двух SQL-запросов JOINED, проходящих через каждую запись - PullRequest
0 голосов
/ 20 сентября 2019

Я хочу использовать операторы IF или CASE при прохождении каждой записи для двух СОВМЕСТНЫХ SQL-запросов.

Каждый AccountID(AccountSDIF) имеет свою собственную уникальную дату создания учетной записи и дату создания задачи учетной записи.Если count(AccountSDIF) =1, тогда примените функцию datediff между датой создания учетной записи и датой создания задачи учетной записи.Если count(AccountSDIF) > 1, тогда примените функцию datediff между датой создания учетной записи и датой создания первой задачи учетной записи.

Это мой запрос, чтобы получить счетчик AccountID(AccountSDIF)

SELECT 
    A_Std.AccountSFID
    ,COUNT(A_Std.AccountSFID) as Count
FROM [PSA].[Stg_Canonical_Task_Std] AS T_Std 
LEFT JOIN [PSA].[Stg_Canonical_Account_Std] AS A_Std 
  ON T_Std.AccountID = A_Std.AccountSFID 
INNER JOIN [PSA].[Stg_Canonical_Task_Custom] T_Cust 
  on T_Std.[TaskSFID] = T_Cust.[TaskSFID] 
WHERE  T_Cust.Activity_C IN ('Call', 'Email') 
   AND T_Std.Program_Name = 'DowWater'  
   AND T_Std.Status = 'Completed' 
   AND T_Std.AccountID IS NOT NULL 
GROUP BY A_Std.AccountSFID

Количество учетных записей

Это мой запрос, чтобы получить дату создания учетной записи и даты создания задачи учетной записи.

select 
   (A_Std.CreatedDate) as AccountCreatedDate
   ,(T_Std.CreatedDate) as AccountsTaskCreatedDate
   ,A_Std.AccountSFID  
from [PSA].[Stg_Canonical_Task_Std] AS T_Std 
LEFT JOIN [PSA].[Stg_Canonical_Account_Std] AS A_Std 
    ON T_Std.AccountID = A_Std.AccountSFID 
INNER JOIN [PSA].[Stg_Canonical_Task_Custom] T_Cust
    on T_Std.[TaskSFID] = T_Cust.[TaskSFID] 
WHERE  T_Cust.Activity_C IN ('Call', 'Email') 
   AND T_Std.Program_Name = 'DowWater'  
   AND T_Std.Status = 'Completed' 
   AND T_Std.AccountID IS NOT NULL 

Дата создания учетной записи и задача создания учетных записейдата

1 Ответ

0 голосов
/ 20 сентября 2019

Если я понимаю:

SELECT 
    A_Std.AccountSFID
    ,datediff(A_Std.CREATEDDATE,min(T_Std.TASKCREATEDDATE))
FROM [PSA].[Stg_Canonical_Task_Std] AS T_Std 
LEFT JOIN [PSA].[Stg_Canonical_Account_Std] AS A_Std 
  ON T_Std.AccountID = A_Std.AccountSFID 
INNER JOIN [PSA].[Stg_Canonical_Task_Custom] T_Cust 
  on T_Std.[TaskSFID] = T_Cust.[TaskSFID] 
WHERE  T_Cust.Activity_C IN ('Call', 'Email') 
   AND T_Std.Program_Name = 'DowWater'  
   AND T_Std.Status = 'Completed' 
   AND T_Std.AccountID IS NOT NULL 
GROUP BY A_Std.AccountSFID,A_Std.CREATEDDATE
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...