某些详细信息:Query1返回除DispositionID值以外重复的行。我只想要具有最高DispositionID值的行。
简化示例:Query1返回:DispositionID [姓氏] [名字]0斯密斯(Smith)鲍勃(Bob)1422史密斯(Smith)鲍勃(Bob)0亚历山大·格兰特(Grant)0。。。。。。。。。。。。。。。。。。。。。。。。。。。
我想要的是:
DispositionID [姓氏] [名字]1422史密斯(Smith)鲍勃(Bob)0亚历山大·格兰特(Grant)0。。。。。。。。。。。。。。。。。。。。。。。。。。。感谢您的指导。我很难使聚合函数正常工作,并且似乎在Query2的Query1中使用Q1的别名可以解决问题,但我也无法正常工作。
我尝试过的内容和详细的实际查询:
我一直在努力寻找一种将以下两个查询合并为一个查询的方法,但是当我使用别名时,SQL会出错。是否可以将这两个查询合并为一个查询,还是我必须使用两个单独的查询?Query1:
SELECT tblCLient_Dispositions.DispositionID, tblClients.[Last Name], tblClients.[First Name], tblClients.[Date of Contact], tblCLient_Dispositions.StartDate, tblCLient_Dispositions.DispositionStatusID, tblStudentStatus.StudentStatus, tblStudentStatus.StudentProfessor, tblStudentStatus.ProfessorEmail, (SELECT COUNT(*) FROM ( SELECT tblClient_Disp_Appointments.DispositionID, tblClient_Disp_Appointments.ApptTypeID, tblClient_Disp_Appointments.ApptStatusID, tblClient_Disp_Appointments.ApptDate, tblroomSchedule.RoomID FROM (tblClient_Disp_Appointments LEFT JOIN tblroomSchedule ON tblClient_Disp_Appointments.AppointmentID = tblroomSchedule.ApptID) WHERE (RoomID <> 6) AND (ApptTypeID = 23 OR ApptTypeID = 18 OR ApptTypeID = 3 OR ApptTypeID = 11 OR ApptTypeID = 6 OR ApptTypeID = 19 OR ApptTypeID = 2) AND (ApptStatusID = 3) ) WHERE (DispositionID = tblCLient_Dispositions.DispositionID) ) AS SessionsCompleted, tblStudentStatus.SessionsRequired, CDate(forms!frmProfessorReport.tbxStartingDate) AS WhatYear FROM (tblCLient_Dispositions LEFT JOIN tblClients ON tblCLient_Dispositions.ClientID = tblClients.ClientID) LEFT JOIN tblStudentStatus ON tblClients.University_Student = tblStudentStatus.StudentStatusID WHERE (((tblClients.University_Student)=[forms]![frmProfessorReport].[cbxWhichClass]) AND ((Nz(Year([tblCLients].[Date of Contact]),Year([forms]![frmProfessorReport].[tbxStartingDate])))=Year([forms]![frmProfessorReport].[tbxStartingDate]))) ORDER BY tblClients.[Last Name] UNION SELECT 0 AS DispositionID, tblClients.[Last Name], tblClients.[First Name], tblClients.[Date of Contact], Null AS StartDate, 0 AS DispositionStatusID, tblStudentStatus.StudentStatus, tblStudentStatus.StudentProfessor, tblStudentStatus.ProfessorEmail, 0 AS SessionsCompleted, tblStudentStatus.SessionsRequired, CDate(forms!frmProfessorReport.tbxStartingDate) AS WhatYear FROM tblClients LEFT JOIN tblStudentStatus ON tblClients.University_Student = tblStudentStatus.StudentStatusID WHERE (((tblClients.University_Student)=[forms]![frmProfessorReport].[cbxWhichClass]) AND ((Nz(Year([tblCLients].[Date of Contact]),Year([forms]![frmProfessorReport].[tbxStartingDate])))=Year([forms]![frmProfessorReport].[tbxStartingDate]))) ORDER BY tblClients.[Last Name]
Query2:
SELECT * FROM Query1 WHERE DispositionID = (SELECT MAX(DispositionID) FROM Query1 AS lookup WHERE lookup.[Last Name] & lookup.[First Name] & lookup.[Date of Contact] = Query1.[Last Name] & Query1.[First Name] & Query1.[Date of Contact])
[我想做的是将Query1粘贴到“ Query1”中,其中Query2说“ FROM Query1”,然后为其赋予别名Q1,但是随后在Query2的WHERE子句中出现错误,Access无法找到Q1。 (当然,在运行组合查询SQL之前,我将WHERE子句中的引用从Query1更改为Q1。)
某些详细信息:Query1返回除DispositionID值以外重复的行。我只想要具有最高DispositionID值的行。简化示例:Query1返回:...
根据您的简化示例,您似乎想要:
select max(DispositionID), [Last Name], [First Name]
from t
group by [Last Name], [First Name]