第一个问题一个例子
select a,b,c,d from table
我想让d的值等于(b+c)/a,但是我又不想在d的位置写得太长,有办法吗。比如 select sum(t.a+t.b) as A,sum(t.c+t.d) as B, A+B as C from t
有没有这样类似的写法。
如果要写成select sum(t.a+t.b) as A,sum(t.c+t.d) as B, sum(t.a+t.b)+sum(t.c+t.d) as C from t 这样看这好麻烦======================
第二个问题查询结果如下
1 4.3 0.89623
2 4.1 0.15136
3 3.6 0.36527
4 7.8 0.72619
我想的把第三列转换成百分比的形式,然后四舍五入。比如0.89623 变成89.62%============================================
第三个问题看第二个问题,一共是4行,我想在查询结果里再加一个第5 行
对每一列求,或是求平均。像EXCEL表格一样,能不能实现。注意:我是既要明细,也要汇总。不是只要一行汇总。看能不能实现。============================================
第四个问题
select sum(t.a+t.b) as A,sum(t.c+t.d) as B from t
where sum(t.c+t.d)=9
group by .....
就是想在结果集中筛选出某一值等于9的行。更复杂点 where sum(t.c+t.d)+sum(t.c+t.d)=9
这样写不知道对不对。怎样写才能对。
select a,b,c,d from table
我想让d的值等于(b+c)/a,但是我又不想在d的位置写得太长,有办法吗。比如 select sum(t.a+t.b) as A,sum(t.c+t.d) as B, A+B as C from t
有没有这样类似的写法。
如果要写成select sum(t.a+t.b) as A,sum(t.c+t.d) as B, sum(t.a+t.b)+sum(t.c+t.d) as C from t 这样看这好麻烦======================
第二个问题查询结果如下
1 4.3 0.89623
2 4.1 0.15136
3 3.6 0.36527
4 7.8 0.72619
我想的把第三列转换成百分比的形式,然后四舍五入。比如0.89623 变成89.62%============================================
第三个问题看第二个问题,一共是4行,我想在查询结果里再加一个第5 行
对每一列求,或是求平均。像EXCEL表格一样,能不能实现。注意:我是既要明细,也要汇总。不是只要一行汇总。看能不能实现。============================================
第四个问题
select sum(t.a+t.b) as A,sum(t.c+t.d) as B from t
where sum(t.c+t.d)=9
group by .....
就是想在结果集中筛选出某一值等于9的行。更复杂点 where sum(t.c+t.d)+sum(t.c+t.d)=9
这样写不知道对不对。怎样写才能对。
select a,b,c,(b+c)/a 'd' from table
select sum(t.a+t.b) as A,sum(t.c+t.d) as B from t
where sum(t.c+t.d)=9
group by .....
不能将聚集函数放到where里,要在group by后面用having子句.
ltrim(cast(col3 as dec(18,2)))+'%'
declare @x floatselect @x=0.89623select cast(round(@x*100,2) as varchar)+'%'-- 结果
89.62%
group by ..... having sum(t.c+t.d)=9
这个忘记*100了
ltrim(cast(col3*100.0 as dec(18,2)))+'%'
union all
select avg(列1),avg(列2),avg(列3) from ([问题2的SQL语句])
group by ... with rollup