以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]用sql 语句来跨表查询  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=161355)

--  作者:fczhaobo
--  发布时间:2021/3/14 22:02:00
--  [求助]用sql 语句来跨表查询
第一段代码用狐表语句实现的,目的是查询一下学员信息表中,查询一下,‘在校的学员中,在报名缴费表中还有多少记录没有结课。
结果第一段代码成功,用sql语句替代,无法实现。

For Each dr As DataRow In DataTables("学员信息").SQLS elect("是否在校 = \'在校\' And 分校编号=\'1008\'")
Dim i As Integer=DataTables("报名缴费").SQLCompute("Count(*)", "学员编号 = \'" & dr("学员编号") & "\' And 课程状态<>\'已结课\'")
If i <>0 Then
output.show(dr("学员编号") & "+" & dr("学员姓名"))
End If
Next



Dim cmd As new SQLCommand
cmd.C
Dim dt As DataTable
cmd.CommandText = "S elect {学员信息}.学员编号 ,{学员信息}.学员姓名 F orm {学员信息} INNER JOIN {报名缴费} ON {学员信息}.学员编号 = {报名缴费}.学员编号 w here {学员信息}.是否在校 = \'在校\' And {学员信息}.分校编号 = \'1008\' and (S elect COUNT(*)  F ROM {报名缴费} w here {报名缴费}.学员编号 = {学员信息}.学员编号 And  {报名缴费}.课程状态 <> \'已结课\') = 0 "
dt = cmd.ExecuteReader() 

--  作者:fczhaobo
--  发布时间:2021/3/14 22:06:00
--  
错误截图
[此贴子已经被作者于2021/3/14 22:06:43编辑过]

--  作者:fczhaobo
--  发布时间:2021/3/14 22:07:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20210314220455.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2021/3/14 22:21:00
--  
cmd.CommandText = "Select {学员信息}.学员编号 ,{学员信息}.学员姓名 Form {学员信息} INNER JOIN {报名缴费} ON {学员信息}.学员编号 = {报名缴费}.学员编号 where {学员信息}.是否在校 = \'在校\' And {学员信息}.分校编号 = \'1008\' and not EXISTS (Select 学员编号  FROM {报名缴费} where {报名缴费}.学员编号 = {学员信息}.学员编号 And  {报名缴费}.课程状态 <> \'已结课\') "
--  作者:fczhaobo
--  发布时间:2021/3/15 8:26:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:12345678.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2021/3/15 8:43:00
--  
cmd.CommandText = "Select a.学员编号,a.学员姓名 Form {学员信息} as a INNER JOIN {报名缴费} as b ON a.学员编号 = b.学员编号 where a.是否在校 = \'在校\' And a.分校编号 = \'1008\' and not EXISTS (Select 学员编号  FROM {报名缴费} as c where c.学员编号 = a.学员编号 And  c.课程状态 <> \'已结课\') "
--  作者:fczhaobo
--  发布时间:2021/3/15 9:10:00
--  
老师,还是不行,错误 一样,实在郁闷了图片点击可在新窗口打开查看
--  作者:有点蓝
--  发布时间:2021/3/15 9:33:00
--  
把sql去掉大括号放到数据库执行看看