我想弄清楚如何在R,D或C状态下只包括PPO/PPB任务,如果在R或D中,只包括在前一个月内完成的任务。TSQL:或上个月的状态
select
d.Address 'Property Address',
d.Client_id 'Client ID',
t.vendor 'Vendor Name',
t.req_dt 'Date Task Ordered',
t.due_dt 'Date Task Due',
case
when t.status = 'D' then 'Done'
when t.status = 'C' then 'Cancel'
when t.status = 'R' then 'Received'
else ''
End 'Task Status',
t.task_type,
d.portfolio
,am.last AssetManagerLastName
,t.done_dt TaskDoneDate
,e.submitted_dt 'Completed Date'
,DATEDIFF(day,t.req_dt,e.submitted_dt) AS [Days to Complete]
from resnet_mysql..property_details d
join resnet_mysql..property_tasks t on t.property_id = d.property_id
left join resnet_mysql..property_exps e on e.property_id = t.property_id and
e.task_id = t.task_id
left join resnet_mysql.dbo.asset_mgrs AM on AM.am_id=d.am_id
where d.res_id = 125 and t.task_type in('PPB', 'PPO')
and
t.status = ('C')
OR (
t.status IN ('R' ,'D')
AND
t.done_dt = DATEADD(month, -1, GETDATE()))
order by t.vendor, t.task_type, t.req_dt desc
感谢这个日期确实有效,但现在由于某种原因,我似乎无法得到查询中的所有3个状态。它只给了我'D'的地位。 – IeeTeY
@leeTey这是一个括号分组,我怀疑...看到我的编辑。 – scsimon
现在它只给我'C'状态:(。 – IeeTeY