容易sql语句写法

简单sql语句写法
select sum(sl) from t_dhdetail where lx= '1'
select sum(sl) from t_dhdetail 

以上两条sql语句合并在一条怎么写

------解决方案--------------------
select sum(sl), SUM(CASE lx WHEN '1' THEN s1 ELSE 0 END)
from t_dhdetail

------解决方案--------------------
你要合并成什么样子?
------解决方案--------------------
select sum(sl), SUM(CASE lx WHEN '1' THEN s1 ELSE 0 END)
from t_dhdetail  复制一下
------解决方案--------------------
select sum(CASE WHEN lx= '1' then sl ELSE 0 END) cnt1,COUNT(1) cnt2 from t_dhdetail 
------解决方案--------------------
引用:
select sum(sl), SUM(CASE lx WHEN '1' THEN s1 ELSE 0 END)
from t_dhdetail




嘿嘿,您好!我是初学者,楼主分开的两句SQL语句,我可以看懂,可是您把它们合并了,这句: (CASE lx WHEN '1' THEN s1 ELSE 0 END)我没看懂,您能帮我解释一下吗???
------解决方案--------------------
这是两条不同的语句,不知道楼主是想合并到什么结果。
如果能给一个具体的例子,我们可能帮到你。
------解决方案--------------------
select sum(sl) s1,sum(case when lx= '1' then s1) s2 from t_dhdetail where lx= '1'
------解决方案--------------------
本帖最后由 DBA_Huangzj 于 2013-10-07 15:25:45 编辑
select sum(sl) s1,sum(case when lx= '1' then s1 else 0 end) s2 from t_dhdetail 





------解决方案--------------------
哈哈,只有想不到,没有做不到啊,学习了
------解决方案--------------------
引用:
select sum(sl), SUM(CASE lx WHEN '1' THEN s1 ELSE 0 END)
from t_dhdetail

++ 就是这样的
------解决方案--------------------
引用:
Quote: 引用:

select sum(sl), SUM(CASE lx WHEN '1' THEN s1 ELSE 0 END)
from t_dhdetail




嘿嘿,您好!我是初学者,楼主分开的两句SQL语句,我可以看懂,可是您把它们合并了,这句: (CASE lx WHEN '1' THEN s1 ELSE 0 END)我没看懂,您能帮我解释一下吗???



就是判断条件,输出结果
CASE sex         --读取sex字段数据 如果为1就显示男 ,如果为2就显示女,else否则就显示'其他'
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END
------解决方案--------------------
你要合并什么样,union all行吗
------解决方案--------------------

--两个语句合并,成为2列
select sum(sl), 
       
       /*
       假如表中有3条数据,分别是:
       lx   sl
       '1'  3
       '0'  4
       '1'  9
       
       那么下面的语句是这样运行的:
       首先判断lx的值是否是'1',
       如果是,那么返回sl的值,否则返回0.
       
       对上面的3条数据,是这样的:
       第一条数据返回3,
       第二条数据返回0,
       第三条数据返回9,
       然后对这3个返回值求sum,也就是3+0+9 = 12
       */
       sum(case when  lx = '1' THEN s1 ELSE 0 END)
from t_dhdetail


--如果你只是想把两个语句的结果合并在一起,也就是变成2条数据,而不是两列
select SUM(sl) from t_dhdetail
union all
select SUM(sl) from t_dhdetail where lx='1'