我希望任何人都可以幫助我解決這個問題。如何將查詢的變量添加到我當前的查詢中?
下面是我的表和代碼(這是一個小錯誤,因爲一件事..),讓我把它分成幾個部分進行進一步說明我的情況..
比方說,我有這個表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