日期:2014-05-18  浏览次数:20764 次

sql动态查询问题
表A

Grade id
 高一 1
 高二 2 grade是年级 id是年级编号
 高三 3




表B

lessonsID lessonName FenKe gradeID
  101 语文 0 01
  102 数学 0 01
  103 英语 0 01
  104 物理 0 01
  105 地理 0 01

  201 语文 0 02 lessonid是课程编号
  202 文数 1 02 lessonname是课程名称
  203 理数 2 02 fenke表示是否分科,0-公共科,1-理科,2-文科
  204 政治 2 02 gradeid是年级编号,与表A字段意义相同但字段名不同
  205 物理 1 02  

  301 语文 0 03
  302 文数 1 03
  303 理数 2 03
  304 化学 1 03
  305 地理 2 03


要求动态实现:3级联动菜单,所有数据从库中查出

第一级显示出年级 第二级显示出分科(若选择高一则只有公共科) 第三级显示出相应课程课程 

-----------------------------------
不知道说的是否清楚,有疑问的请大家联系我





------解决方案--------------------
SQL code
create table tb1(Grade varchar(10) , id int)
insert into tb1 values('高一' , 1) 
insert into tb1 values('高二' , 2)
insert into tb1 values('高三' , 3)
create table tb2(lessonsID int, lessonName varchar(10) , FenKe int, gradeID varchar(10))
insert into tb2 values(101 ,       '语文' ,       0 ,     '01') 
insert into tb2 values(102 ,       '数学' ,       0 ,     '01') 
insert into tb2 values(103 ,       '英语' ,       0 ,     '01') 
insert into tb2 values(104 ,       '物理' ,       0 ,     '01') 
insert into tb2 values(105 ,       '地理' ,       0 ,     '01') 
insert into tb2 values(201 ,       '语文' ,       0 ,     '02')
insert into tb2 values(202 ,       '文数' ,       1 ,     '02')
insert into tb2 values(203 ,       '理数' ,       2 ,     '02')
insert into tb2 values(204 ,       '政治' ,       2 ,     '02')
insert into tb2 values(205 ,       '物理' ,       1 ,     '02')              
insert into tb2 values(301 ,       '语文' ,       0 ,     '03') 
insert into tb2 values(302 ,       '文数' ,       1 ,     '03') 
insert into tb2 values(303 ,       '理数' ,       2 ,     '03') 
insert into tb2 values(304 ,       '化学' ,       1 ,     '03') 
insert into tb2 values(305 ,       '地理' ,       2 ,     '03') 
go

select m.grade , m.id , n.lessonsid , n.lessonname , case n.fenke when 0 then '公共科' when 1 then '理科' when 2 then '文科' end fenke from tb1 m , tb2 n where m.id = cast(n.gradeid as int) order by m.id , n.lessonsid
 
drop table tb1,tb2

/*
grade      id          lessonsid   lessonname fenke  
---------- ----------- ----------- ---------- ------ 
高一         1           101         语文         公共科
高一         1           102         数学         公共科
高一         1           103         英语         公共科
高一         1           104         物理         公共科
高一         1           105         地理         公共科
高二         2           201         语文         公共科
高二         2           202         文数         理科
高二         2           203         理数         文科
高二         2           204         政治         文科
高二         2           205         物理         理科
高三         3           301         语文         公共科
高三         3           302         文数         理科
高三         3           303         理数         文科
高三         3           304         化学         理科
高三         3           305         地理         文科

(所影响的行数为 15 行)
*/