当前位置: 代码迷 >> Sql Server >> 那位大哥帮小弟我写一下这个SQL呢
  详细解决方案

那位大哥帮小弟我写一下这个SQL呢

热度:53   发布时间:2016-04-27 21:05:37.0
那位大哥帮我写一下这个SQL呢?
我有三个表
一个是公司表(company)
C_id       C_name  
01           公司A
01           公司B
01           公司C
中间表   guideline
G_id       C_id       M_id       G_value
01           01           01           800

工程表project
P_id       P_name       P_units
01           总产值       万元

我想得到所有公司的内容乍么写SQL语句

C_id       C_name     P_name       G_value       P_units
01           公司A       总产值       800               万元
01           公司B       总产值       0.00             万元
01           公司C       总产值       0.00             万元

------解决方案--------------------
select a.C_id ,a. C_name c.P_name , b.G_value , c.P_units from
company left join guideline b on a.C_id.=b.C_id
left join project on a.c_id=b.P_id
------解决方案--------------------
select
a.C_id,
a.C_name,
p.P_name,
isnull(g.G_value,0.00) as G_value,
p.P_unigts
from
company c
cross join
project p
left join
guideline g
on
c.C_id=g.C_id and p.G_id=g.M_id
------解决方案--------------------
select A.C_id,A.C_name,B.P_name,C.G_value,B.P_units
from company A,project B,C.guideline
where A.C_id=C.C_id AND B.P_id=C.M_id
------解决方案--------------------
select company.C_id,
company.C_name,
isnull(project.P_name, '总产值 ') as P_name,
isnull(guideline.G_value,0) as G_value,
isnull(project.P_units, '万元 ') as P_units
from company
left join guideline on guideline.C_id=company.C_id
left join project on project.P_id=guideline.M_id
------解决方案--------------------
做了这么多表 id都一样,写错了?
------解决方案--------------------
用两次左外连接就可以解决了,一楼的楼主写的语句就OK了!
  相关解决方案