SELECT T.問卷編號,T.模板號,T.總分,C.所屬大類,C.所屬小類,C.新分,bm.小類名稱,bm.原分,st.得分,ev.大類名稱 FROM TOTAL T,CONTENTPOINT C ,bm_evaluationcontent bm ,situation st,bm_evaluation ev WHERE T.模板號=C.模板號 and t.問卷編號='108' and bm.小類號 in(select distinct 小類號 from bm_evaluationcontent) and bm.大類號 = st.小類號 and c.所屬大類=ev.大類號---結果問卷編號 模板號 總分 所屬大類 所屬小類 新分 小類名稱 原分 得分 大類名稱 108 20 303 X A 100 Aname 110 10 X1 108 20 303 X B 101 Aname 110 10 X1 108 20 303 Y C 102 Aname 110 10 Y2 108 20 303 X A 100 Bname 220 10 X1 108 20 303 X B 101 Bname 220 10 X1 108 20 303 Y C 102 Bname 220 10 Y2 108 20 303 X A 100 Aname 110 20 X1 108 20 303 X B 101 Aname 110 20 X1 108 20 303 Y C 102 Aname 110 20 Y2 108 20 303 X A 100 Bname 220 20 X1 108 20 303 X B 101 Bname 220 20 X1 108 20 303 Y C 102 Bname 220 20 Y2 108 20 303 X A 100 Cname 330 30 X1 108 20 303 X B 101 Cname 330 30 X1 108 20 303 Y C 102 Cname 330 30 Y2 108 20 303 X A 100 Aname 110 1 X1 108 20 303 X B 101 Aname 110 1 X1 108 20 303 Y C 102 Aname 110 1 Y2 108 20 303 X A 100 Bname 220 1 X1 108 20 303 X B 101 Bname 220 1 X1 108 20 303 Y C 102 Bname 220 1 Y2 108 20 303 X A 100 Aname 110 2 X1 108 20 303 X B 101 Aname 110 2 X1 108 20 303 Y C 102 Aname 110 2 Y2 108 20 303 X A 100 Bname 220 2 X1 108 20 303 X B 101 Bname 220 2 X1 108 20 303 Y C 102 Bname 220 2 Y2 108 20 303 X A 100 Cname 330 2 X1 108 20 303 X B 101 Cname 330 2 X1 108 20 303 Y C 102 Cname 330 2 Y2
仔细看了下,讲的还算明白,根据2楼的,修改下, 1:问卷表Total和问卷模板内容表contentpoint表间关系1:N,左关联 2:小类表bm_evaluationcontent 和问卷模板内容表contentpoint表间关系1:1,外键关系为(大类号,小类号 ) 3:小类表bm_evaluationcontent和大类表bm_evaluation 得到大类名称 组成成表BMSELECT T.問卷編號,T.模板號,T.總分,bm.大类号,bm.小类号,bm.小类名称 ,bm.原分,bm.大类名称 FROM TOTAL T,CONTENTPOINT C , (select a.大类号,a.小类号,a.小类名称 ,a.原分,b.大类名称 from bm_evaluationcontent a,bm_evaluation b where a.大类号=b.大类号) bm , --3 situation st,bm_evaluation ev WHERE t.問卷編號='108' and T.模板號=C.模板號(+) --1 and c.大类号=bm.大类号 and c.小类号=bm.小类号 --24:问卷得分表situation 根据上面结果,外层再去查得分即可
问卷编号 模板号 总分 所属大类号 所属小类号 新分 小类名称 原分 得分
108-----20--303------X-------A------100---Aname--110--10
108-----20--303------X-------B------101---Aname--110--20
108-----20--303------Y-------C------102---Aname--110--30
------------------------------------------------------------------------------
SELECT T.問卷編號,T.模板號,T.總分,C.所屬大類,C.所屬小類,C.新分,bm.小類名稱,bm.原分,st.得分,ev.大類名稱
FROM TOTAL T,CONTENTPOINT C ,bm_evaluationcontent bm ,situation st,bm_evaluation ev
WHERE T.模板號=C.模板號 and t.問卷編號='108'
and bm.小類號 in(select distinct 小類號 from bm_evaluationcontent)
and bm.大類號 = st.小類號 and c.所屬大類=ev.大類號---結果問卷編號 模板號 總分 所屬大類 所屬小類 新分 小類名稱 原分 得分 大類名稱
108 20 303 X A 100 Aname 110 10 X1
108 20 303 X B 101 Aname 110 10 X1
108 20 303 Y C 102 Aname 110 10 Y2
108 20 303 X A 100 Bname 220 10 X1
108 20 303 X B 101 Bname 220 10 X1
108 20 303 Y C 102 Bname 220 10 Y2
108 20 303 X A 100 Aname 110 20 X1
108 20 303 X B 101 Aname 110 20 X1
108 20 303 Y C 102 Aname 110 20 Y2
108 20 303 X A 100 Bname 220 20 X1
108 20 303 X B 101 Bname 220 20 X1
108 20 303 Y C 102 Bname 220 20 Y2
108 20 303 X A 100 Cname 330 30 X1
108 20 303 X B 101 Cname 330 30 X1
108 20 303 Y C 102 Cname 330 30 Y2
108 20 303 X A 100 Aname 110 1 X1
108 20 303 X B 101 Aname 110 1 X1
108 20 303 Y C 102 Aname 110 1 Y2
108 20 303 X A 100 Bname 220 1 X1
108 20 303 X B 101 Bname 220 1 X1
108 20 303 Y C 102 Bname 220 1 Y2
108 20 303 X A 100 Aname 110 2 X1
108 20 303 X B 101 Aname 110 2 X1
108 20 303 Y C 102 Aname 110 2 Y2
108 20 303 X A 100 Bname 220 2 X1
108 20 303 X B 101 Bname 220 2 X1
108 20 303 Y C 102 Bname 220 2 Y2
108 20 303 X A 100 Cname 330 2 X1
108 20 303 X B 101 Cname 330 2 X1
108 20 303 Y C 102 Cname 330 2 Y2
【根据 模板号20 查询=问卷模板内容表= 得到 所属信息如1 】这里得到小类,下面根据小类查询
【根据 所属小类A、B、C 查询=小类表= 得到 所属信息如2 】
【根据 所属小类A、B、C和问卷号 查询=问卷得分表= 得到 所属信息如3 】
【根据 所属大类号X、Y 查询=大类表= 得到 所属信息如4 】 最后根本大类查询。
1:问卷表Total和问卷模板内容表contentpoint表间关系1:N,左关联
2:小类表bm_evaluationcontent 和问卷模板内容表contentpoint表间关系1:1,外键关系为(大类号,小类号 )
3:小类表bm_evaluationcontent和大类表bm_evaluation 得到大类名称 组成成表BMSELECT T.問卷編號,T.模板號,T.總分,bm.大类号,bm.小类号,bm.小类名称 ,bm.原分,bm.大类名称
FROM TOTAL T,CONTENTPOINT C ,
(select a.大类号,a.小类号,a.小类名称 ,a.原分,b.大类名称
from bm_evaluationcontent a,bm_evaluation b
where a.大类号=b.大类号) bm , --3
situation st,bm_evaluation ev
WHERE t.問卷編號='108' and T.模板號=C.模板號(+) --1
and c.大类号=bm.大类号 and c.小类号=bm.小类号 --24:问卷得分表situation 根据上面结果,外层再去查得分即可