【发布时间】:2019-05-22 11:33:33
【问题描述】:
我有以下 SQL 查询 -
select distinct HospitalAcctID,
AdmitDate,
DischargeDate,
PatMRN,
Pat_id,
ICD,
MedCenter,
(case when SeqCount =1 and AdmitDate > '06/01/2013' and AdmitDate < '06/01/2018' then 1 else null end ) Firstdiag
from
(
select distinct acct.HSP_ACCOUNT_ID as HospitalAcctID,
cast(acct.ADM_DATE_TIME as date format 'mm/dd/yyyy') as AdmitDate,
cast(acct.DISCH_DATE_TIME as date format 'mm/dd/yyyy') as DischargeDate,
pat.pat_mrn_id as PatMRN,
pat.pat_id as Pat_id,
REF_BILL_CODE as ICD,
grp7.NAME AS MedCenter,
row_number() over (partition by PatMRN order by AdmitDate) as SeqCount
from acct
inner join pat on pat.pat_id = acct.pat_id
inner join hspenc on hspenc.CSN_ID = acct.CSN_ID
inner join dx on acct.ACCOUNT_ID = dx.ACCOUNT_ID and line = 1
inner join edg on dx.DX_ID = edg.DX_ID
inner join loc on loc.LOC_ID = acct.LOC_ID
inner join grp7 ON loc.RPT_GRP_SEVEN = grp7.RPT_GRP_SEVEN
where
grp7.NAME = 'SMC AREA'
and ADMIT_CONF_STAT_C in ('1','4')
and (edg. REF_BILL_CODE in ('431',
'431')
)
and ADT_PAT_CLASS_C in ('1204','12113')
order by AdmitDate;
)Admit
但我收到以下语法错误 - 语法错误,在 'AdmitDate' 和 ',' 之间应有类似“EXCEPT”关键字、“UNION”关键字或“MINUS”关键字
在外部选择语句中,我试图获取第一次诊断时的最小(第一个)日期。我还想只获取在 2013 年 6 月至 2018 年 6 月之间被诊断出的患者,这就是我有 CASE 声明的原因。但是 CASE 声明给了我错误。
【问题讨论】:
-
只需删除
order by AdmitDate之后的分号。我不知道 Teradata 的 sql,但您甚至可能需要使用order by完全删除该行...