如何将IF或CASE用于通过每条记录连接的两个SQL查询

如何将IF或CASE用于通过每条记录连接的两个SQL查询,sql,tsql,Sql,Tsql,我想使用IF或CASE语句,同时检查两个连接的SQL查询的每条记录 每个AccountID(AccountSDIF)都有自己独特的帐户创建日期和帐户的任务创建日期。如果计数(AccountSDIF)=1,则在帐户创建日期和帐户任务创建日期之间应用datediff函数。 如果count(AccountSDIF)>1,则在帐户创建日期和帐户的第一个任务创建日期之间应用datediff函数 这是我的查询,用于获取AccountID(AccountSDIF) 这是我的查询,用于获取帐户创建日期和帐户的

我想使用
IF
CASE
语句,同时检查两个连接的SQL查询的每条记录

每个
AccountID(AccountSDIF)
都有自己独特的帐户创建日期和帐户的任务创建日期。如果
计数(AccountSDIF)=1
,则在帐户创建日期和帐户任务创建日期之间应用
datediff
函数。 如果
count(AccountSDIF)>1
,则在帐户创建日期和帐户的第一个任务创建日期之间应用
datediff
函数

这是我的查询,用于获取
AccountID(AccountSDIF)

这是我的查询,用于获取帐户创建日期和帐户的任务创建日期

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 
如果我理解:

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

这两件事似乎是同一件事?在帐户创建日期和帐户的第一个任务创建日期之间应用datediff。如果只有一个任务,那么它的创建日期将自动为第一个。谢谢@avery_larry,它工作得非常好!我对groupby子句总是有点困惑
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