三张表
X
XM XB WH
1 甲 1 3
2 乙 1 3
3 丙 2 4
4 丁 2 4
Y
LBID DMID DMMC
1 1 1 男
2 1 2 女
3 2 3 本科
4 2 4 高中
Z
LBID LB名称
1 1 性别
2 2 文化 要求得出这样的结果
XM XB WH
1 甲 男 本科
2 乙 男 本科
3 丙 女 高中
4 丁 女 高中分给前2位 谢谢!
X
XM XB WH
1 甲 1 3
2 乙 1 3
3 丙 2 4
4 丁 2 4
Y
LBID DMID DMMC
1 1 1 男
2 1 2 女
3 2 3 本科
4 2 4 高中
Z
LBID LB名称
1 1 性别
2 2 文化 要求得出这样的结果
XM XB WH
1 甲 男 本科
2 乙 男 本科
3 丙 女 高中
4 丁 女 高中分给前2位 谢谢!
XM XB WH
1 甲 1 3
2 乙 1 3
3 丙 2 4
4 丁 2 4Y
LBID DMID DMMC
1 1 1 男
2 1 2 女
3 2 3 本科
4 2 4 高中Z
LBID LB名称
1 1 性别
2 2 文化 要求得出这样的结果
XM XB WH
1 甲 男 本科
2 乙 男 本科
3 丙 女 高中
4 丁 女 高中
from x, y
where x.wh = y.dmid
WH
1 3可以参考我的BLOG
http://blog.csdn.net/java3344520/archive/2010/07/13/5731758.aspx
SELECT X.XM, Y1.DMMC, Y2.DMMC
FROM X,
(SELECT *
FROM Y, Z
WHERE Y.LBID = Z.LBID AND Z.LB名称 = '性别') Y1,
(SELECT *
FROM Y, Z
WHERE Y.LBID = Z.LBID AND Z.LB名称 = '文化') Y2
WHERE X.XB = Y1.DMID AND X.WH = Y2.DMID
select '甲' xm,1 xb,3 wh from dual
union all
select '乙' xm,1 xb,3 wh from dual
union all
select '丙' xm,2 xb,4 wh from dual
union all
select '丁' xm,2 xb,4 wh from dual
),Y as(
select 1 lbid,1 dmid,'男' dmmc from dual
union all
select 1 lbid,2 dmid,'女' dmmc from dual
union all
select 2 lbid,3 dmid,'本科' dmmc from dual
union all
select 2 lbid,4 dmid,'高中' dmmc from dual
),Z as(
select 1 lbid,'性别' lbmc from dual
union all
select 2 lbid,'文化' lbmc from dual
)
select xm,max(xb),max(wh) from(
select x.xm,y.dmmc xb,null wh from x,y,z where x.xb = y.dmid and y.lbid = z.lbid
union all
select x.xm,null xb,y.dmmc wh from x,y,z where x.wh = y.dmid and y.lbid = z.lbid
) group by xm
select x.xm,
y1.dmmc as xb,
y2.dmmc as wh
from x,y y1,y y2,z z1,z z2
where x.xb=y1.dmid(+)
and y1.lbid=z1.lbid(+)
and 1=z1.lbid(+)
and x.wh=y2.dmid(+)
and y2.lbid=z2.lbid(+)
and 2=z2.lbid(+)
select a.xm xm,a.dmmc xb,y.dmmc wh from
(select x.xm,y.dmmc,x.wh from x,y where x.xb =y.dmid ) a, y
where a.wh=y.dmid