表的结构是这样,
field1,field2,field3,计量单位,数量.
field1,field2 是关键字
记录中计量单位有'块'和'吨'
要把'块'和'吨'在一条记录中显示出来
如:
field1,field2,field3, 块数, 吨数
--------------------------------
记录1 记录1 记录1 xx xxx
记录2 记录2 记录2 yy yyy我的意思表达清楚了吧
这样的语句该怎么写?
field1,field2,field3,计量单位,数量.
field1,field2 是关键字
记录中计量单位有'块'和'吨'
要把'块'和'吨'在一条记录中显示出来
如:
field1,field2,field3, 块数, 吨数
--------------------------------
记录1 记录1 记录1 xx xxx
记录2 记录2 记录2 yy yyy我的意思表达清楚了吧
这样的语句该怎么写?
解决方案 »
- 大侠救命 EXCEL和SQL连接问题
- |M| 两个表操作 大家看看SQL要怎么写
- UPDATE1万条记录的DATETIME字段,结果因为输错了日期,全部弄错了,怎么恢复?
- 我的DTS 的作业为何不能定时触发?
- 将double型数据变量添加到decimal类型字段的问题
- 求一sql函数 能返回上周周末的日期时间值
- 问一下存储过程里面的事务的问题?
- 快来拿分了
- 首先祝大家节日快乐,问个简单的问题:储存过程如何事务处理?
- 简体中文《sql server 联机丛书》 到哪里下载!
- 求一两个字段连接成一个字段的SQL语句!请各位高手指点!在线等!谢谢!
- count (*) from tb 与select * from table 得到的条数不一样
from table090209 a
left outer join table090209 b
on a.Field1=b.Field1 and a.Field2=b.Field2 and b.计量单位='块'
left outer join table090209 c
on a.Field1=c.Field1 and a.Field2=c.Field2 and c.计量单位='吨'
吨数=(case when (计量单位='吨') then 数量 else 0 end) from table090209
declare @table table (field1 varchar(5),field2 varchar(5),field3 varchar(5),块数 int,吨数 int)
insert into @table
select '记录1','记录1','记录1',1,0 union all
select '记录2','记录2','记录2',0,3 union all
select '记录2','记录2','记录2',2,0 union all
select '记录2','记录2','记录2',2,4 union all
select '记录2','记录2','记录2',1,3
select * ,cast(吨数 as varchar(20))+' 吨'+cast(块数 as varchar(20)) +' 块' as '你是要这个吗?' from @table/*
field1 field2 field3 块数 吨数 你是要这个吗?
------ ------ ------ ----------- ----------- ----------------------------------------------
记录1 记录1 记录1 1 0 0 吨1 块
记录2 记录2 记录2 0 3 3 吨0 块
记录2 记录2 记录2 2 0 0 吨2 块
记录2 记录2 记录2 2 4 4 吨2 块
记录2 记录2 记录2 1 3 3 吨1 块
*/
field1,field2,field3, 计量单位, 数量
-----------------------------------
a b c 吨 2
a b c 块 20要变成这样:field1,field2,field3, 块数 , 吨数
--------------------------------
a b c 20 2 不好意思,上面写错了
declare @table table (field1 varchar(5),field2 varchar(5),field3 varchar(5),计量单位 varchar(5),数量 int)
insert into @table
select '记录1','记录1','记录1','吨',2 union all
select '记录2','记录2','记录2','块',3 union all
select '记录2','记录2','记录2','吨',1 union all
select '记录2','记录2','记录2','块',4 union all
select '记录2','记录2','记录2','斤',3
--查看数据
select * from @table
/*
field1 field2 field3 计量单位 数量
------ ------ ------ ----- -----------
记录1 记录1 记录1 吨 2
记录2 记录2 记录2 块 3
记录2 记录2 记录2 吨 1
记录2 记录2 记录2 块 4
记录2 记录2 记录2 斤 3
*/select field1,field2,field3,
块数=( case 计量单位 when '块' then 数量 else 0 end),
吨数=( case 计量单位 when '吨' then 数量 else 0 end)
from @table a where 计量单位 in ('吨','块')
/*
field1 field2 field3 块数 吨数
------ ------ ------ ----------- -----------
记录1 记录1 记录1 0 2
记录2 记录2 记录2 3 0
记录2 记录2 记录2 0 1
记录2 记录2 记录2 4 0
*/
insert into table(....)
select 1 field1,1 field2, 4 field3,'吨' as 计量单位, 1 as num
union all
select 1 field1,2 field2, 4 field3,'块' as 计量单位, 3 as num
union all
select 1 field1,3 field2, 4 field3,'吨' as 计量单位, 4 as num
union all
select 2 field1,1 field2, 5 field3,'块' as 计量单位, 6 as num
union all
select 2 field1,2 field2, 4 field3,'吨' as 计量单位, 1 as num
select 吨数 = case when AA.计量单位='吨' then AA.num
else 0 end,
块数 = case when AA.计量单位='块' then AA.num
else 0 end,
AA.计量单位,AA.field1,AA.field2, AAA.field3
from(
select sum(case when 计量单位 = '吨' then num
when 计量单位 = '块' then num
else 0 end) As num,计量单位,field1,field2
from table
group by 计量单位,field1,field2
) AS AA,table as AAAwhere aa.field1=aaa.field1
and aa.field2=aaa.field2
我还要每条记录做汇总,
不知道case和sum连在一起该怎么写?
(
select field1,field2,field3,块数=(case when (计量单位='块') then 数量 else 0 end),
吨数=(case when (计量单位='吨') then 数量 else 0 end) from table090209) A group by field1,field2,field3
declare @table table (field1 varchar(5),field2 varchar(5),field3 varchar(5),计量单位 varchar(5),数量 int)
insert into @table
select '记录1','记录1','记录1','吨',2 union all
select '记录2','记录2','记录2','块',3 union all
select '记录2','记录2','记录2','吨',1 --查看数据
select * from @table
/*
field1 field2 field3 计量单位 数量
------ ------ ------ ----- -----------
记录1 记录1 记录1 吨 2
记录2 记录2 记录2 块 3
记录2 记录2 记录2 吨 1
*/select distinct field1,field2,field3,块数=sum(块数),吨数=sum(吨数) from
(
select field1,field2,field3,
块数=( case 计量单位 when '块' then 数量 else 0 end),
吨数=( case 计量单位 when '吨' then 数量 else 0 end)
from @table a where 计量单位 in ('吨','块')
)
bb group by field1,field2,field3/*
field1 field2 field3 块数 吨数
------ ------ ------ ----------- -----------
记录1 记录1 记录1 0 2
记录2 记录2 记录2 3 1
*/