这种写法不知效率如何?请高手指教!
select 住院科室,摘要,sum(金额) je from mxz_cy where 记帐类型<>'交款'
and 住院号+convert(char(10),入院日期) in( select 住院号+convert(char(10),入院日期) from brda_cy where 日期 >'2004-01-01')
group by 住院科室,摘要
select 住院科室,摘要,sum(金额) je from mxz_cy where 记帐类型<>'交款'
and 住院号+convert(char(10),入院日期) in( select 住院号+convert(char(10),入院日期) from brda_cy where 日期 >'2004-01-01')
group by 住院科室,摘要
两个convert转换效率不高,用多个语句试试
select 住院科室,摘要,sum(金额) je from mxz_cy where 记帐类型<>'交款'
and 住院号 in( select 住院号 from brda_cy where 日期 >'2004-01-01')
and 入院日期 in( select 入院日期 from brda_cy where 日期 >'2004-01-01')
group by 住院科室,摘要
as b on 记帐类型<>'交款'
and b.日期>'2004-01-01'
and m.住院号=b.住院号
and m.入院日期=b.入院日期
group by m.住院科室,摘要
ksrsoft你另外的几种写法效率比第一种差多了,追求效率的话尽量别用子查询,IN等语句,子查询的效率比直接的表关联效果差多了!另外,from a inner join b on ...和from a,b where效率是一样的。
使用别名好象也提高不了性能,不过这个没有具体测试过。
我查了许多资料,得知子查询效果不高!
结帐!