私はここに新しいので、うまくいけばこれを正しく投稿しました。
テーブル 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
)
)
「Column dbo.PTC-CERT_PERIOD.PATIENT_ID is invalid in the select list because it is not included in either an aggregate function or in the GROUP BY clause. で指定できる式は 1 つだけです。サブクエリが EXISTS で導入されていない場合の選択リスト. 私はいくつかの EXISTS ステートメントをいじりました. それらが実行された場合、結果はかなり離れており、Max だけでなく、患者のすべての PERIOD_NO をリストしています.右のトラック?