hur.cn - 华软网

 热门搜索

嵌套的 sum语句,高手进

  作者:未知    来源:网络    更新时间:2019/10/7
select 
sum(
case (
select top 1 sample_rx_log.reg_no
from sample_rx_log
where sample_rx_log.reg_no = sample_detail.reg_no
and sample_rx_log.sub_no = sample_detail.sub_no
and sample.co_code = sample_rx_log.co_code
order by sample_rx_log.rx_on desc 

when null then 0
else 1
end )  

from sample_detail, sample
where sample_detail.reg_no = sample.reg_no
and sample_detail.dead= 'N'
and sample_detail.delivery_mode = 'N'
and sample.batch_no = 'US000008'
;

提醒犯错,什么,不能准备有subquery的语句

select 
case (
select top 1 sample_rx_log.reg_no
from sample_rx_log
where sample_rx_log.reg_no = sample_detail.reg_no
and sample_rx_log.sub_no = sample_detail.sub_no
and sample.co_code = sample_rx_log.co_code
order by sample_rx_log.rx_on desc 

when null then 0
else 1
end 

from sample_detail, sample
where sample_detail.reg_no = sample.reg_no
and sample_detail.dead= 'N'
and sample_detail.delivery_mode = 'N'
and sample.batch_no = 'US000008'
;

去掉这个 sub后,结果是一条记录,为 1
就是想把这个 1累加起来


 语法毛病?照旧怎么会事儿?

在线 等

------华软网友回答------
你的是什么数据库呀?
------华软网友回复------
select 
sum(
case (t.reg_no


when null then 0
else 1
end )  

from sample_detail, sample, (select top 1 sample_rx_log.reg_no
from sample_rx_log
where sample_rx_log.reg_no = sample_detail.reg_no
and sample_rx_log.sub_no = sample_detail.sub_no
and sample.co_code = sample_rx_log.co_code
order by sample_rx_log.rx_on desc ) t
where sample_detail.reg_no = sample.reg_no
and sample_detail.dead= 'N'
and sample_detail.delivery_mode = 'N'
and sample.batch_no = 'US000008'

------华软网友回复------
select 
sum(
case (t.reg_no


when null then 0
else 1
end )  

from sample_detail, sample, (select top 1 sample_rx_log.reg_no
from sample_rx_log
where sample_rx_log.reg_no = sample_detail.reg_no
and sample_rx_log.sub_no = sample_detail.sub_no
and sample.co_code = sample_rx_log.co_code
order by sample_rx_log.rx_on desc ) t
where sample_detail.reg_no = sample.reg_no
and sample_detail.dead= 'N'
and sample_detail.delivery_mode = 'N'
and sample.batch_no = 'US000008'

------华软网友回复------
select 
sum(
case (t.reg_no


when null then 0
else 1
end )  

from sample_detail, sample, (select top 1 sample_rx_log.reg_no
from sample_rx_log
where sample_rx_log.reg_no = sample_detail.reg_no
and sample_rx_log.sub_no = sample_detail.sub_no
and sample.co_code = sample_rx_log.co_code
order by sample_rx_log.rx_on desc ) t
where sample_detail.reg_no = sample.reg_no
and sample_detail.dead= 'N'
and sample_detail.delivery_mode = 'N'
and sample.batch_no = 'US000008'

------华软网友回复------
改成这样 你试一下:
select 
sum(
case (sample_rx_log.reg_no 


when null then 0
else 1
end )  

from sample_detail, sample ,(select top 1 sample_rx_log.reg_no
from sample_rx_log
where sample_rx_log.reg_no = sample_detail.reg_no
and sample_rx_log.sub_no = sample_detail.sub_no
and sample.co_code = sample_rx_log.co_code
order by sample_rx_log.rx_on desc ) as sample_rx_log
where sample_detail.reg_no = sample.reg_no
and sample_detail.dead= 'N'
and sample_detail.delivery_mode = 'N'
and sample.batch_no = 'US000008'
------华软网友回复------
用这个

select sum( aaa ) from 
(
select 
case (
select top 1 sample_rx_log.reg_no
from sample_rx_log
where sample_rx_log.reg_no = sample_detail.reg_no
and sample_rx_log.sub_no = sample_detail.sub_no
and sample.co_code = sample_rx_log.co_code
order by sample_rx_log.rx_on desc 

when null then 0
else 1
end  as  aaa
from sample_detail, sample
where sample_detail.reg_no = sample.reg_no
and sample_detail.dead= 'N'
and sample_detail.delivery_mode = 'N'
and sample.batch_no = 'US000008'
) ta
;

------华软网友回复------
很久没来PB版,顶。。      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。