select DetailBudget.subjectCode,(select sum(DetailBudget.total) from DetailBudget where substring(projectCode,4,2) = 'B5' and subjectCode = 'Z' ) as b5from subjectinner join DetailBudget on subject.subjectCode = DetailBudget.subjectCodegroup by DetailBudget.subjectCode order by DetailBudget.subjectCode查询结果如下:subjectCode total b5
F01 168.00 90.00
F02 0.00 90.00
F03 0.00 90.00
F04 0.00 90.00
F05 0.00 90.00
F06 0.00 90.00
F07 0.00 90.00
F070107 168.00 90.00我想实现如下结果
subjectCode total b5
F01 168.00 90.00
F02 0.00 00.00
F03 0.00 00.00
F04 0.00 00.00
F05 0.00 00.00
F06 0.00 00.00
F07 0.00 00.00
F070107 168.00 90.00
sql语句怎么写 请教?主要是group by 的问题
F01 168.00 90.00
F02 0.00 90.00
F03 0.00 90.00
F04 0.00 90.00
F05 0.00 90.00
F06 0.00 90.00
F07 0.00 90.00
F070107 168.00 90.00我想实现如下结果
subjectCode total b5
F01 168.00 90.00
F02 0.00 00.00
F03 0.00 00.00
F04 0.00 00.00
F05 0.00 00.00
F06 0.00 00.00
F07 0.00 00.00
F070107 168.00 90.00
sql语句怎么写 请教?主要是group by 的问题
解决方案 »
- 聚合函数的问题,请教!
- 妹妹求哥哥一个关于SQL的问题
- 昨天我在执行update语句时忘了加where条件语句结果导致整个表都成了一条记录,请问有什么办法恢复?
- 行列转换,动态的实现,表的名称和字段都是动态的,上面的条件也是动态的????
- 如何利用一条SQL语句统计一个学生成绩库不同分数段的人数
- 再问sqlserver防火墙问题
- 做圖片存取的時候我該用IMAGE還是varbinary
- 病毒问题
- 請教大家在存儲過程裏,傳一ID值如何取得這ID的上一個和下一個ID
- 请问:我用odbc 连接sql server 7 为什么会出错(100分)
- 多表联合查询的问题《多表联合查询的问题?
- sql 筛选重复数据
--> 测试数据:[test]
if object_id('[test]') is not null drop table [test]
create table [test]([subjectCode] varchar(7),[total] numeric(5,2),[b5] numeric(4,2))
insert [test]
select 'F01',168.00,90.00 union all
select 'F02',0.00,90.00 union all
select 'F03',0.00,90.00 union all
select 'F04',0.00,90.00 union all
select 'F05',0.00,90.00 union all
select 'F06',0.00,90.00 union all
select 'F07',0.00,90.00 union all
select 'F070107',168.00,90.00with t
as(
select px=ROW_NUMBER()over(partition by len([subjectCode]) order by (select 1)),
* from test
)
select [subjectCode],[total],
case when exists(select 1 from t b
where a.px=b.px+1 and LEN(a.subjectCode)=LEN(b.subjectCode))
then 0 else [b5] end as [b5]
from t a
order by 1/*
subjectCode total b5
---------------------------
F01 168.00 90.00
F02 0.00 0.00
F03 0.00 0.00
F04 0.00 0.00
F05 0.00 0.00
F06 0.00 0.00
F07 0.00 0.00
F070107 168.00 90.00
*/