SQL查询与2个不相关的WHERE条件
问题描述:
我是SQL初学者,请帮助我。 我有2个表:SQL查询与2个不相关的WHERE条件
**Assessment_Schedule** (Use to lookup Session number) <br>
**UnitCode | AssessmentNumber | Session_Start | Session_Due**
Unit 1 | AN1 | Session 1 | Session 3 |
Unit 1 | AN2 | **Session 2 | Session 2** |
Unit 1 | AN3 | Session 5 | Session 9 |
Unit 2 | AN1 | Session 6 | Session 8 |
Unit 2 | AN2 | **Session 7 | Session 7** |
Unit 2 | AN3 | Session 8 | Session 10 |
**-> Class_SessionDate <br>**
**ClassCode | SessionNumber | SessionDate **
Class1 | Session 1 | 01/01/17 |
Class1 | Session 2 | 04/01/17 |
Class1 | Session 3 | 08/01/17 |
Class1 | Session 4 | 12/01/17 |
Class1 | Session 5 | 16/01/17 |
Class1 | Session 6 | 20/01/17 |
Class1 | Session 7 | 24/01/17 |
Class1 | Session 8 | 28/01/17 |
我理想中的结果实现的是
**ClassCode | UnitCode | AssessmentNumber | Ass_StartDate | Ass_DueDate **
Class1 | Unit 1 | AN1 | 01/01/17 | 08/01/17
Class1 | Unit 1 | AN2 | 04/01/17 | 04/01/17
Class1 | Unit 1 | AN3 | 16/01/17 | 01/02/17
Class1 | Unit 2 | AN1 | 20/01/17 | 28/01/17
Class1 | Unit 2 | AN2 | 24/01/17 | 24/01/17
Class1 | Unit 2 | AN3 | 28/01/17 | 10/02/17
我已经取得了迄今使用WHERE条件得到Ass_StartDate中,Ass_DueDate只是显示相同的值作为Ass_StartDate。
后来,当我把“在哪里”为Ass_DueDate,只有2结果产生的分别是:
Class1 | Unit 1 | AN2 | 04/01/17 | 04/01/17
Class1 | Unit 2 | AN2 | 24/01/17 | 24/01/17
请帮助我。非常感谢您
答
您可以使用JOIN语句 像
SELECT T2.ClassCode, T1.UnitCode, T1.AssessmentNumber, (SELECT SessionDate FROM Table1 WHERE SessionNumber = T1.Session_Start), (SELECT SessionDate FROM
Table1 WHERE SessionNumber = T1.Session_Due)
FROM Your_tables
+1
非常感谢你Asmgx,你是天才,这就是我所能说的:)。与GROUP BY结合起来,它的作用就像魔术一样:D。再次。谢谢!!! – Musicazx
您可以包括你的全部已经试过查询? 'AND WHERE'听起来像会产生语法错误。如果你的意思是'WHERE'东西'AND'别的东西,那么看到*完全*你在看什么会有帮助。此外,只是一个想法,你可能想要使用缩写。 –
嗨鲍勃,感谢编辑我的文章,这使得它更清晰。这是我的查询**选择Class_SessionDate.ClassCode,Assessment_Schedule.UnitCode,Assessment_Schedule.AssessmentNumber,Class_SessionDate为Ass_StartDate,Class_SessionDate作为Ass_DueDate FROM Assessment_Schedule,Class_SessionDate, WHERE Assessment_Schedule.Session_Start = Class_SessionNumber AND Assessment_Schedule.Session_End = Class_SessionNumber **我想我需要使用联盟?对不起,我还没有熟悉Stackoverflow格式。 – Musicazx