Sql 如何返回过去90天内没有活动日期的记录?
我有一个查询,可以返回过去90天内没有活动的所有记录,但它似乎也在返回过去90天内活动的记录。我怎样才能解决这个问题 检查它们是否处于活动状态的逻辑-Sql 如何返回过去90天内没有活动日期的记录?,sql,sql-server,join,Sql,Sql Server,Join,我有一个查询,可以返回过去90天内没有活动的所有记录,但它似乎也在返回过去90天内活动的记录。我怎样才能解决这个问题 检查它们是否处于活动状态的逻辑-tm.timeslip\u date。。。。。。。。。。。。。。。 左连接dbo.timeslips tm 关于cases.case_sk=tm.case_sk --和tm.timeslip_date DATEADD(day,-90,GETDATE()) ......................... 和tm.timeslip\u日期请在代码问
tm.timeslip\u date。。。。。。。。。。。。。。。
左连接dbo.timeslips tm
关于cases.case_sk=tm.case_sk
--和tm.timeslip_date DATEADD(day,-90,GETDATE())
.........................
和tm.timeslip\u日期请在代码问题中给出一个--cut&paste&runnable代码,包括作为代码输入的最小代表性示例;期望和实际输出(包括逐字记录错误消息);标签和版本;清晰的说明和解释。尽可能少地给出代码,即显示为OK的代码,并通过显示为not OK的代码进行扩展。(调试基础。)用于包含DBMS和DDL(包括约束和索引)的SQL,并将其作为格式化为表的代码输入。暂停总体目标的工作,在第一个表达中删去代码,不要给出你的期望,说出你的期望以及为什么。请。仅将图像用于不能表示为文本或扩充文本的内容。包括图例/图例和说明以及图像。@谢谢您的帮助info@philipxy谢谢你提供的信息。下次我会关注这些。非常感谢。我请求你的帮助。它起作用了。
WITH unit AS (
SELECT
tm.create_date
, tm.timeslip_date
, cases.case_sk
, cases.case_number
, cases.closed_ind
, cases.atty2_sk
, vc.atty2_name AS [Business Leader]
, em.smtp_reply_to AS [Business Leader Email]
, cases.atty1_sk
, vc.atty1_name AS [Assign Attorney]
, tm.detail_notes
FROM dbo.cases
LEFT JOIN dbo.vcases vc ON cases.case_sk = vc.case_sk
LEFT JOIN dbo.employee em ON cases.atty2_sk = em.employee_sk
LEFT JOIN dbo.timeslips tm
ON cases.case_sk = tm.case_sk
AND tm.timeslip_date <= DATEADD(day, -90, GETDATE()) -- This where I check last 90 days no timeslip dates**
WHERE cases.closed_ind = 'O'
), agg AS (
SELECT
MIN(u.create_date) AS [Created Date]
, MAX(u.timeslip_date) AS [Last Bill Date]
, u.case_sk
, u.case_number
, u.closed_ind
, u.atty2_sk
, u.[Business Leader]
, u.[Business Leader Email]
, u.atty1_sk
, u.[Assign Attorney]
FROM unit u
GROUP BY
u.case_sk
, u.case_number
, u.closed_ind
, u.atty2_sk
, u.[Business Leader]
, u.[Business Leader Email]
, u.atty1_sk
, u.[Assign Attorney]
)
SELECT agg.*, unit.detail_notes
FROM agg
INNER JOIN unit
ON agg.[Last Bill Date] = unit.[timeslip_date]
AND agg.case_sk = unit.case_sk
AND agg.case_number = unit.case_number
AND agg.closed_ind = unit.closed_ind
AND agg.atty2_sk = unit.atty2_sk
AND agg.atty1_sk = unit.atty1_sk
WHERE agg.case_sk ='66505'
ORDER BY agg.[Created Date] ASC
...............
LEFT JOIN dbo.timeslips tm
ON cases.case_sk = tm.case_sk
--AND tm.timeslip_date <= DATEADD(day, -90, GETDATE()) -- This where I check last 90 days no timeslip dates**
WHERE cases.closed_ind = 'O'
AND NOT EXISTS(SELECT * FROM dbo.timeslips tsm WHERE tsm.case_sk = cases.case_sk AND tsm.timeslip_date > DATEADD(day, -90, GETDATE()) )
.........................