这种情况可能没有帮助,但如果有帮助:我正在处理寄养客户的安置记录。如果客户离开家休息,或者他们的费率发生变化,或者他们改变养父母,或者他们改变子计划或其他一些原因,他们就会改变。我正在尝试确定与当前具有相同寄养父母、比率和子计划的最早安置开始日期(并且不是暂息)。
我创建了一个视图,该视图具有不具有 RSPT 状态的最大位置。我现在正在尝试使用以下代码找到他们最早进入该位置的时间:
SELECT MAX(PL.[PLCMNT ST DT]) AS MaxStDt,
PL.ProgID
FROM dbo.PlacementLog AS PL
INNER JOIN dbo.ProgramLog AS PR ON
PL.ProgID = PR.[PROGRAM KEY]
WHERE (PR.[PROGRAM CODE] = 29) AND
(PL.PlcmntStatus <> N'RSPT') AND
(PL.[PLCMNT ST DT] <
(SELECT MaxStartDate
FROM dbo.FcMaxNonRespPlcmntS2 AS FCM
WHERE (ProgID = PL.ProgID) AND
(RCode = PL.[RATE CODE]) AND
(FosFamID = PL.FosFamID) AND
(SubProg = PL.SubProg)))
GROUP BY PL.ProgID,
PL.SubProg,
PL.[RATE CODE],
PL.FosFamID
我得到的子查询返回超过 1 个值。这是不允许的...错误。对我做错了什么有任何见解吗?另外,有没有办法在此代码中添加一个案例,如果早期放置不存在,则列出来自 FcMaxNonRespPlcmntS2 的最大放置?
感谢您的任何帮助