我希望任何人都可以帮助我解决这个问题。如何将查询的变量添加到我当前的查询中?
下面是我的表和代码(这是一个小错误,因为一件事..),让我把它分成几个部分进行进一步说明我的情况..
比方说,我有这个表Pandimandata2002 .dbo.tblCrew:
CaseNo DatePIConsult cgoInceptionDate
------ ------------- ----------------
TR12-A 12/03/2012 10/11/2012
TR13-S 11/15/2012 09/15/2012
PO09-B 08/20/2012
SX58-Q 11/22/2012 11/01/2012
BR88-W 10/05/2012 11/05/2012
,我有这个数据PostMeds.dbo.tblpms:
CaseNo med_stat med_stateff
------ -------- -----------
BR88-W FIT 12/01/2012
TR12-A UNDERTX 03/13/2013
TR13-S UNDERTX 03/10/2013
PO09-B UNDERTX 01/25/2013
TR13-S FIT 04/01/2013
BR88-W UNDERTX 11/17/2012
从那里,我想有这样的:
CaseNo DIFF2
------ -----
BR88-W 57
TR12-A 122
PO09-B 227
TR13-S 137
SX58-Q 133
DIFF2是两个日期(比如,DATE1-DATE2)的差异。
DATE1等于DATE NOW(2013年4月4日)如果CaseNo未在现有PostMeds.dbo.tblpms
DATE1等于(med_stateff的最大值,其中med_stat是LIKE '%FIT%')特定CaseNo的
OR ELSEIF MAX(med_stateff)为空或线没有现有,DATE1也将等于DATE NOW(2013年4月4日)
DATE2等于cgoInceptionDate如果DatePIConsult是NULL
ELSE DATE2等于DatePIConsult
是我当前的查询:
SELECT
t1.CaseNo,
(SELECT
CASE WHEN MAX(cast(o.med_stateff as datetime)) IS NULL THEN DATEDIFF(DAY,
CASE WHEN t1.DatePIConsult IS NULL THEN t1.cgoInceptionDate
ELSE t1.DatePIConsult END, GETDATE())
WHEN ----(select o.med_stat --------)
DATEDIFF(DAY,
CASE WHEN t1.DatePIConsult IS NULL THEN t1.cgoInceptionDate
ELSE t1.DatePIConsult END,
MAX(cast(o.med_stateff as datetime))) END AS DIFF2
FROM PostMeds.dbo.tblpms o
WHERE t1.CaseNo COLLATE DATABASE_DEFAULT = o.CaseNo COLLATE DATABASE_DEFAULT) AS DIFF2
FROM Pandimandata2002.dbo.tblCrew t1
我的代码错误部分是在DIFF2条件..
在那里,我想补充的条件得到med_state的值(w/c与med_stat对齐)是最大值WHERE(或考虑)CaseNo等于我的特定SUBPRIMARYKEY的值。在获得该值后,我必须检查该值是否等于某个单词('FIT'),之后我可以对我的代码进行必要的调整。
我真的希望有人可以帮助我整理了这一点..在此先感谢你们..
您如何为SX58-Q提供133? – 2013-04-04 01:55:35
ok .. ill编辑我的文章,并将其添加到底部 – 2013-04-04 01:56:08
我在底部之前添加了解释..谢谢@AaronBertrand – 2013-04-04 02:05:43