0
我在這裏是新的,所以希望已經正確發佈了這個。試圖學習T-SQL子查詢語法
我有一個表PTC_CERT_PERIOD,並希望獲得表中每個PATIENT_ID的最大PERIOD_NO。我可以通過像下面另一種看法有我的觀點看這樣做:
SELECT TOP (100) PERCENT
dbo.PTC_CERT_PERIOD.CERT_PERIOD_ID
, dbo.PTC_CERT_PERIOD.PATIENT_ID
, dbo.PTC_CERT_PERIOD.CERTIFICATION_DATE
, dbo.PTC_CERT_PERIOD.CERT_END_DATE
, dbo.PTC_CERT_PERIOD.PAY_SOURCE_POINTER
, dbo.PTC_CERT_PERIOD.IS_ACTIVE
, dbo.VW_SDH_CAS_MaxCertPeriod1.MaxCertPeriod
, dbo.PTC_CERT_PERIOD.CREATE_DATE
FROM
dbo.PTC_CERT_PERIOD
INNER JOIN dbo.VW_SDH_CAS_MaxCertPeriod1
ON dbo.PTC_CERT_PERIOD.PATIENT_ID = dbo.VW_SDH_CAS_MaxCertPeriod1.PATIENT_ID
AND dbo.PTC_CERT_PERIOD.PERIOD_NO = dbo.VW_SDH_CAS_MaxCertPeriod1.MaxCertPeriod
但在我看來,我應該能夠編寫一個子查詢做同樣的事情,我不能得到正確的語法爲子查詢。我一直在嘗試了幾個小時,我的最後一個失敗的迭代是:
SELECT
CERT_PERIOD_ID
, PATIENT_ID
, CERTIFICATION_DATE
, CERT_END_DATE
, PAY_SOURCE_POINTER
, IS_ACTIVE
, CREATE_DATE
, PERIOD_NO
FROM
dbo.PTC_CERT_PERIOD
WHERE
(PERIOD_NO IN
(
SELECT
PATIENT_ID AS MaxPtID
, MAX(PERIOD_NO) AS MaxCertPeriod
FROM
dbo.PTC_CERT_PERIOD AS PTC_CERT_PERIOD_1
)
)
好像什麼,我試圖得到一個錯誤信息,如「列dbo.PTC-CERT_PERIOD.PATIENT_ID是因爲它是在選擇列表中無效不包含在集合函數或GROUP BY子句中當子查詢沒有被EXISTS引入時,在選擇列表中只能指定一個表達式我玩過幾個EXISTS語句,如果它們運行的結果是方式的關閉,列出患者的所有PERIOD_NO,不只是最大值,任何人都可以指向正確的軌道嗎?
謝謝,但它仍然無法正常工作。我在「Z」附近的FROM子句中得到「Error」。無法解析查詢文本「 – Chri3s
試圖添加一個AS但不去。試圖添加第二組圓括號,但沒有去? – Chri3s