Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ms.access和vb.net中的sql语法_Sql_Vb.net_Ms Access - Fatal编程技术网

ms.access和vb.net中的sql语法

ms.access和vb.net中的sql语法,sql,vb.net,ms-access,Sql,Vb.net,Ms Access,我想问一下microsoft access中的sql语法 我想要的是: kdploting kdsubject nmsubject nmlecture kp001 km001 xx a kp001 km002 yy b kp001 km003 zz c 结果: kdploting kdsubject nmsubject nmlecture kp001 km001

我想问一下microsoft access中的sql语法

我想要的是:

kdploting kdsubject nmsubject nmlecture kp001 km001 xx a kp001 km002 yy b kp001 km003 zz c 结果:

kdploting kdsubject nmsubject nmlecture kp001 km001 xx a kp001 km001 xx b kp001 km001 xx c kp001 km002 yy a kp001 km002 yy b kp001 km002 yy c kp001 km002 zz a kp001 km002 zz b kp001 km002 zz c KD绘图KD主题NM主题NM讲座 kp001 km001 xx a kp001 km001 xx b kp001 km001 xx c kp001 km002 yy a kp001 km002 yy b kp001 km002 yy c kp001 km002 zz a kp001 km002 zz b kp001 km002 zz c 我不想要这样的结果,有人能解释一下为什么会这样吗?正确的sql查询是什么

谢谢大家

注:我真的需要这个查询我的vb.net程序,谢谢大家

这是我的桌子:

subject kdsubject nmsubject km001 xx km002 yy km003 zz mstlecture kdlecture nmlecture kd001 a kd002 b kd003 c Transplotingdetail kdploting kdmatakuliah kp001 km001 kp001 km002 kp001 km003 kp002 km001 kp002 km002 kp002 km003 ... transploting header kdploting kdlecture kp001 kd001 kp001 kd002 kp001 kd003 kp002 kd001 kp002 kd002 kp002 kd003 ... 主题 kdsubject nmsubject km001 xx km002 yy km003 zz MST结构 KD讲座 kd001 a kd002 b kd003 c 透光细部 kdmatakuliah kp001 km001 kp001 km002 kp001 km003 kp002 km001 kp002 km002 kp002 km003 ... 输送割台 知识绘图知识讲座 kp001 kd001 kp001 kd002 kp001 kd003 kp002 kd001 kp002 kd002 kp002 kd003 ... 我想要的是这样 KD绘图KD主题NM主题NM讲座 kp001 km001 xx a kp001 km002 yy b kp001 km003 zz c
为了使用方便,我缩短/更改了表名/主题名。但是使用与您的样本相同的数据。SQL Server功能最好的部分是
行号()
:),因为查询是在SQL Server中完成的,我利用了它。SQL Server语法更符合MS ACCESS。因此,查询最重要的部分是确保内部记录上有一个基于distinct
subjectid
讲师ID
的排序/编号。请看一下这本书

* 查询:

select y.did, x.lid, x.lname,
y.sid, y.sname from
(select ROW_NUMBER() OVER (ORDER BY a.lid) AS Row,
 a.lid, a.lname, b.did
from mstl a
left join (select distinct lid, did from 
           th) as b
on b.lid = a.lid
where b.did = 'kp001') as x
join
(select ROW_NUMBER() OVER (ORDER BY c.sid) AS Row,
 c.sid, c.sname, d.did
from subject c
left join (select distinct sid, did from 
           td) as d
on d.sid = c.sid
where d.did = 'kp001') as y
on x.row = y.row
;
结果:

DID     LID     LNAME   SID     SNAME
kp001   kd001   a       km001   xx
kp001   kd002   b       km002   yy
kp001   kd003   c       km003   zz

上次加入条件中缺少别名。你能编辑并添加它吗?你能发布所有表格中的样本数据吗?那么我该怎么做呢?您需要我所有表中的示例数据吗?我刚刚插入了我所有表中的示例数据。感谢DISTINCT子句不是一个函数,它始终适用于所有字段;i、 e.您将在所有字段中获得不同的字段值组合。@user1533670请尝试查询,并重新确认是否确实遗漏了
km001
条件。抱歉,我刚刚输入了错误的预期结果,我想要的是KD绘图kdsubject nmsubject NM讲座kp001 km001 xx a kp001 km002 yy b kp001 km003 zz c我为我的错误感到非常抱歉,我想要sid是“km001”、“km002”、“km003”谢谢你的帮助。
select y.did, x.lid, x.lname,
y.sid, y.sname from
(select ROW_NUMBER() OVER (ORDER BY a.lid) AS Row,
 a.lid, a.lname, b.did
from mstl a
left join (select distinct lid, did from 
           th) as b
on b.lid = a.lid
where b.did = 'kp001') as x
join
(select ROW_NUMBER() OVER (ORDER BY c.sid) AS Row,
 c.sid, c.sname, d.did
from subject c
left join (select distinct sid, did from 
           td) as d
on d.sid = c.sid
where d.did = 'kp001') as y
on x.row = y.row
;
DID     LID     LNAME   SID     SNAME
kp001   kd001   a       km001   xx
kp001   kd002   b       km002   yy
kp001   kd003   c       km003   zz