这样的select 怎样写(50分)

  • 主题发起人 主题发起人 88888wwwww
  • 开始时间 开始时间
8

88888wwwww

Unregistered / Unconfirmed
GUEST, unregistred user!
例如我有一个表:
编号 数量 出/入
aa 100 c--表示出
aa 200 l--表示入
请问怎样可以显示如下:
编号 数量(出) 数量(入)
aa 100 200
 
select 编号,数量,"出" from tab where 出/入="c"
union
select 编号,数量,"入" from tab where 出/入="l"
 
Select Distinct 编号,
(Select sum(数量) From 表 Where 编号=AA.编号 and 出/入='c') as 数量出,
(Select sum(数量) From 表 Where 编号=AA.编号 and 出/入='l') as 数量入
From 表 BB
Order by 编号
 
可不可以用一条语句
我记的可以这样,但会出显两条

select a.编号,a.数量 as 出,b.数量 as 入 from table a ,table b
where (a.编号=b.编号) and (a.出入<>b.出入)
请高手指点
 
自己在sql里面试一下吧
 
select 编号,sum(case when 出入='c' then 数量 else 0 end),
sum(case when 出入='1' then 数量 else 0 end)
from tablename
group by 编号

 
Select Distinct 编号,
(Select sum(数量) From 表 Where 编号=AA.编号 and 出/入='c') as 数量出,
(Select sum(数量) From 表 Where 编号=AA.编号 and 出/入='l') as 数量入
From 表 AA Order by 编号
//这里应该是AA吧!
 

select a.编号,a.数量 as 出,b.数量 as 入 from table a left jion table b on
((a.编号=b.编号) and (a.出入<>b.出入))
试试

 
这个问题解决过。思想是将这个查询分成三个查询。第一个只查编号。第二个查数量(出)
第三个查数量入。然后再将这三个连接起来。因为我现在网吧上网,给两个大概的模型给你,
你在查询工具中试试看好吗(我没办法调试)。
(1):
select a.编号,b.数量(出), c.数量(入) from
(select distinct a.编号 as 编号 from table) a,
(select 编号 as 编号1,sum(数量(出)) as 数量(出)from table where 出/入=c group by 编号) b,
(select 编号 as 编号2,sum(数量(入)) as 数量(入)from table where 出/入=l group by 编号) c
left join b on a.编号=b.编号1
left join c on a.编号=c.编号2
(2):
select a.编号,b.数量(出), c.数量(入) from
(select distinct a.编号 as 编号 from table) a left join
(select 编号 as 编号1,sum(数量(出)) as 数量(出)from table group by 编号) b,
on a.编号=b.编号1
left join
(select 编号 as 编号2,sum(数量(入)) as 数量(入)from table group by 编号) c
on a.编号=c.编号2
 
多人接受答案了。
 
后退
顶部