当前位置: 代码迷 >> Sql Server >> 合并SQL语句,该怎么处理
  详细解决方案

合并SQL语句,该怎么处理

热度:32   发布时间:2016-04-27 18:05:20.0
合并SQL语句
(1)select co_code,sum(case when receive_date between <%param("qsrq")%> and <%param("jsrq")%> then revenue_num else 0 end)*100 benyue,sum(revenue_num)*100 leijishu 
from v_nt_bill_baobiaoqushu
where fiscal=<%substring(param('jsrq'),1,4) %>
and receive_date<=<%param("jsrq")%>
and co_code in (<%getcode(param('gsdm'))%>)
group by co_code
order by co_code

(2)select co_code,sum(case when receive_date between <%param("sqsrq")%> and <%param("sjsrq")%> then revenue_num else 0 end)*100 sbenyue,sum(revenue_num)*100 sleijishu
from v_nt_bill_baobiaoqushu
where fiscal=<%substring(param('sjsrq'),1,4) %>
and receive_date<=<%param("sjsrq")%>
and co_code in (<%getcode(param('gsdm'))%>)
group by co_code
order by co_code

请教如何将两个语句合并在一个语句里面,谢谢,指导

------解决方案--------------------
select co_code,sum(case when receive_date between <%param("qsrq")%> and <%param("jsrq")%> then revenue_num else 0 end)*100 benyue,sum(revenue_num)*100 leijishu
from v_nt_bill_baobiaoqushu
where fiscal=<%substring(param('jsrq'),1,4) %>
and receive_date<=<%param("jsrq")%>
and co_code in (<%getcode(param('gsdm'))%>)
group by co_code
union all
select co_code,sum(case when receive_date between <%param("sqsrq")%> and <%param("sjsrq")%> then revenue_num else 0 end)*100 sbenyue,sum(revenue_num)*100 sleijishu
from v_nt_bill_baobiaoqushu
where fiscal=<%substring(param('sjsrq'),1,4) %>
and receive_date<=<%param("sjsrq")%>
and co_code in (<%getcode(param('gsdm'))%>)
group by co_code

------解决方案--------------------
SQL code
select co_code,sum(case when receive_date between <%param("qsrq")%> and <%param("jsrq")%> then revenue_num else 0 end)*100 benyue,sum(revenue_num)*100 leijishu  from v_nt_bill_baobiaoqushuwhere fiscal=<%substring(param('jsrq'),1,4) %>and receive_date<=<%param("jsrq")%>and co_code in (<%getcode(param('gsdm'))%>)group by co_codeorder by co_codeunion all  --用union allselect co_code,sum(case when receive_date between <%param("sqsrq")%> and <%param("sjsrq")%> then revenue_num else 0 end)*100 sbenyue,sum(revenue_num)*100 sleijishufrom v_nt_bill_baobiaoqushuwhere fiscal=<%substring(param('sjsrq'),1,4) %>and receive_date<=<%param("sjsrq")%>and co_code in (<%getcode(param('gsdm'))%>)group by co_codeorder by co_code
------解决方案--------------------
select ...,
 sum(case when receive_date<=date1 and 原条件 then ... else 0 end)*100 benyue,
 sum(case when receive_date<=date2 and 原条件 then ... else 0 end)*100 sbenyue,
 sum(case when receive_date<=date1 then receive_num else 0 end) leijishu,
 sum(case when receive_date<=date2 then receive_num else 0 end) sleijishu
from ...
where ...

这里的where条件中没有receive_date<=条件。
------解决方案--------------------
SQL code
select co_code,sum(case when receive_date between <%param("qsrq")%> and <%param("jsrq")%> then revenue_num else 0 end)*100 benyue,sum(revenue_num)*100 leijishu   from v_nt_bill_baobiaoqushuwhere fiscal=<%substring(param('jsrq'),1,4) %>and receive_date<=<%param("jsrq")%>and co_code in (<%getcode(param('gsdm'))%>)group by co_codeunion allselect co_code,sum(case when receive_date between <%param("sqsrq")%> and <%param("sjsrq")%> then revenue_num else 0 end)*100 sbenyue,sum(revenue_num)*100 sleijishufrom v_nt_bill_baobiaoqushuwhere fiscal=<%substring(param('sjsrq'),1,4) %>and receive_date<=<%param("sjsrq")%>and co_code in (<%getcode(param('gsdm'))%>)group by co_code
  相关解决方案