Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将最长日期子查询添加到GROUPBY子句_Sql_Sql Server 2005_Crystal Reports_Subquery_Correlated Subquery - Fatal编程技术网

Sql 将最长日期子查询添加到GROUPBY子句

Sql 将最长日期子查询添加到GROUPBY子句,sql,sql-server-2005,crystal-reports,subquery,correlated-subquery,Sql,Sql Server 2005,Crystal Reports,Subquery,Correlated Subquery,我需要在此报告中添加一个最大交易日期,以便我可以查看不属于查询中参数范围的患者的最新交易日期。此报告将成为crystal报告,我计划将每个患者的最后服务日期放在组标题中。下面的代码用于获取每个患者的最长日期。我需要插入结果,因此它需要符合以下报告的患者,并给出他们的最长日期。无论输入的日期是什么。先谢谢你。SQLServer2005 select patient_id, Max(proc_chron) from patient_clin_tran pct group by patient

我需要在此报告中添加一个最大交易日期,以便我可以查看不属于查询中参数范围的患者的最新交易日期。此报告将成为crystal报告,我计划将每个患者的最后服务日期放在组标题中。下面的代码用于获取每个患者的最长日期。我需要插入结果,因此它需要符合以下报告的患者,并给出他们的最长日期。无论输入的日期是什么。先谢谢你。SQLServer2005

select 
patient_id, 
Max(proc_chron) 

from patient_clin_tran pct
group by patient_id
事务的代码

select patient_id,

(select p.case_status from patient p where p.patient_id = btb.patient_id and p.episode_id = (select max(episode_id) from patient p2 where p2.patient_id = p.patient_id)) as 'Status',
(select p.lname +', '+ p.fname from patient p where p.patient_id = btb.patient_id and p.episode_id = (select max(episode_id) from patient p2 where p2.patient_id = p.patient_id)) AS 'client',
Coverage_plan_id, 
(select proc_code from billing_transaction bt where bt.clinical_transaction_no = btb.clinical_transaction_no and bt.coverage_plan_id=btb.coverage_plan_id and bt.coverage_plan_id = btb.coverage_plan_id) as 'Procedure',
proc_chron, 
(select billing_amt from billing_transaction bt where bt.clinical_transaction_no = btb.clinical_transaction_no and bt.coverage_plan_id = btb.coverage_plan_id) as 'Billing Amount',
balance_amount,
(select max (accounting_date) from  billing_ledger bl where bl.clinical_transaction_no = btb.clinical_transaction_no and subtype = 'pa' and bl.coverage_plan_id = 'standard') as 'Last Payment on Trans',
(select max (instrument_date) from payment p where p.patient_id = btb.patient_id and  p.coverage_plan_id = 'standard') as 'Last Payment on Acct',
(select sum(balance_amount) from billing_transaction_balance btb2 where btb2.patient_id=btb.patient_id and btb2.coverage_plan_id=btb.coverage_plan_id and proc_chron <= CONVERT(CHAR(6), DATEADD(year, -1, DATEDIFF(day, 0,GETDATE())), 112) + '01' and btb2.coverage_plan_id   in('standard')) AS 'Balance'

from billing_transaction_balance btb

where proc_chron <= CONVERT(CHAR(6), DATEADD(year, -1, DATEDIFF(day, 0, GETDATE())), 112) + '01' and coverage_plan_id   in('standard') 

group by patient_id, proc_chron, coverage_plan_id, balance_amount, clinical_transaction_no

在事务代码中,您需要添加所有未聚合到Group By的Select列。我在Select语句中计算了8个非聚合列,因此必须将所有8个列都包含在Group By中。

Group By中的内容与Group By中的内容也不匹配。为每个患者添加max dateproc_chron的子查询代码是什么?如果您只想从上述交易代码中的billing_transaction_balance btb获取maxproc_chron,那么您所要做的就是在select中将proc_chron更改为maxproc_chron,并将其从group by中删除。select Maxbtb.proc_chron,类似的事情?因为它没有给我最新的事务。好的,这可能是因为您正在分组的所有其他列。可以通过删除任何无关的列来简化此查询吗?如果没有,请添加where子句,该子句通过加入同一个表来限制每个患者id的有效proc\u CHRO。类似于:和btb.proc\u chron=从计费交易余额btb3中选择maxbtb3.proc\u chron,其中btb3.patient\u id=btb.patient\u id和proc\u chron