首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql语句有关问题,有兴趣的帮忙看看

2012-02-25 
sql语句问题,有兴趣的帮忙看看!我有两个表user和infouser包括username(char)headuser(char)unit(char)info

sql语句问题,有兴趣的帮忙看看!
我有两个表user和info
user包括username(char)   headuser(char)   unit(char)
info包括detaile(text)   inputuser(char)

user   内容为
A     null   开发部
B     A         null  
C     A         null  
D     null   销售部

info   内容为

good     A
bad       C
cool     D
petty   B


要得到的结果为
开发部   3
销售部   1

这个sql怎么写呀!
那位有兴趣帮帮忙!
急等,验证后马上给分!

[解决办法]
SELECT
CASE ISNULL(U1.unit, ' ') WHEN ' ' THEN U2.unit ELSE U1.unit END AS 部门,COUNT(*) AS 数量
FROM
user U1
LEFT JOIN user U2 ON U1.headuser=U2.username
GROUP BY CASE ISNULL(U1.unit, ' ') WHEN ' ' THEN U2.unit ELSE U1.unit END
[解决办法]
select unit,count(1)
from
info left join
(
select t.username,
case isnull(t.unit, ' ')
when ' ' then v.unit
else t.unit
end as unit
from users t
left join users v on t.headuser=v.username
) as tt on username=inputuser
group by unit
[解决办法]
没看lz说明,语句改为这样

select unit,count(unit) from
(select * from info a left join
(select username, isnull(unit,(select unit from user1 where username=c.headuser)) as unit from user1 c) as b
on a.inputuser=b.username) as d group by unit

热点排行