院信息表      :院代码
系信息表      :系代码 院代码
班级信息表    :班级号 系代码 院代码
学生基本信息表:学号   姓名   班级号 系代码 院代码
成绩信息表    :成绩ID 学号
我要实现 不定条件查询 学生成绩  SQL语句怎么写??
我自己写的:select 成绩,学号,课程号 from 院信息表 inner join 系信息表 join 班级信息表 join 学生基本信息表 join 成绩信息表 where " & 条件
条件 应该可以为:院代码 或 院代码+系代码 或 院代码+系代码+班级号 或 学号  或  姓名 或·····

请教各位高手啊·······

解决方案 »

  1.   

    不定条件?
    WHERE isnull(院代码,@院代码)=院代码 AND isnull(系代码,@系代码)=系代码... 
      

  2.   


    where convert(varchar,isnull(院代码,@院代码)) = 院代码
    or convert(varchar,isnull(院代码,@院代码))+convert(varchar,isnull(系代码,@系代码))= 院代码+系代码
    or ...
      

  3.   

    "select 成绩,成绩信息表.学号,成绩信息表.课程号 from 院信息表,系信息表,班级信息表,学生基本信息表,成绩信息表 where((院信息表.院代码 = 系信息表.院代码) and (系信息表.系代码=班级信息表.系代码) and (班级信息表.班号=学生基本信息表.班号) and (学生基本信息表.学号=成绩信息表.学号)) " & SQL  这么写 怎么样 可以不???
      

  4.   

    我写的 条件拼接 (VB)
     SQL = ""
    If CboQuery(0).Text <> "" Then
      aa = 1
      If SQL = "" Then
        SQL = " 院信息表.院代码='" & Left(Trim(CboQuery(0).Text), 2) & "'"
      Else
        SQL = SQL & "and 院信息表.院代码='" & Left(Trim(CboQuery(0).Text), 2) & "'"
      End If
    End If
    If CboQuery(1).Text <> "" Then
      aa = 1
      If SQL = "" Then
        SQL = "系信息表.系代码='" & Left(Trim(CboQuery(1).Text), 4) & "'"
      Else
        SQL = SQL & "and 系信息表.系代码='" & Left(Trim(CboQuery(1).Text), 4) & "'"
      End If
    End If
    If CboQuery(2).Text <> "" Then
      aa = 1
      If SQL = "" Then
        SQL = "班级信息表.班号='" & Left(Trim(CboQuery(2).Text), 6) & "'"
      Else
        SQL = SQL & "and 班级信息表.班号='" & Left(Trim(CboQuery(2).Text), 6) & "'"
      End If
    End If
     
    If Trim(Text(0).Text) <> "" Then
     aa = 1
     If SQL = "" Then
        SQL = "学生基本信息表.姓名='" & Trim(Text(0).Text) & "'"
      Else
        SQL = SQL & "and 学生基本信息表.姓名='" & Trim(Text(0).Text) & "'"
      End If
    End IfIf Trim(Text(1).Text) <> "" Then
     aa = 1
     If SQL = "" Then
        SQL = "学生基本信息表.学号='" & Trim(Text(1).Text) & "'"
      Else
        SQL = SQL & "and 学生基本信息表.学号='" & Trim(Text(1).Text) & "'"
      End If
    End If
    If aa = 0 Then
      ss = MsgBox("你至少要输入一个条件以上才能查询!", , " 警告")
      Text(0).SetFocus
     Exit Sub