Памагити с запросом пожалста

snocky
Дата: 19.09.2005 09:23:00
есть вот такой вот запрос:
SELECT tblHome.CodeHome, tblPlat.DatePlat, tblPlat.SummaOst
FROM tblPlat INNER JOIN (tblHome INNER JOIN tblPromeg ON tblHome.ID_home = tblPromeg.ID_home) ON tblPlat.ID_plat = tblPromeg.ID_plat
ORDER BY tblPlat.DatePlat;

Надо его дополнить чтобы строки в нем групировались по tblHome.CodeHome, причем так чтобы tblHome.CodeHome отображались те что с максимальной tblPlat.DatePlat
snocky
Дата: 19.09.2005 09:25:52
т.е. чтобы из tblHome.CodeHome равной 10470028 выбралось тока то что со значением даты 16/09/05 10:48:27. А со значением 10470043 - 14/09/05 11:31:56
Rivkin Dmitry
Дата: 19.09.2005 10:30:17
Не понятно, что имелось ввиду "надо дополнить"...
Я так понимаю, что надо изменить запрос?

Я бы создал еще один запрос:
SELECT tblPromeg.ID_home, tblPromeg.ID_plat, MAX(tblPlat.DatePlat) AS DatePlat
FROM tblPlat INNER JOIN tblPromeg ON tblPlat.ID_plat = tblPromeg.ID_plat
GROUP BY tblPromeg.ID_home  
и сохранил бы его как, например, Q1
Затем

SELECT tblHome.CodeHome, tblPlat.DatePlat, tblPlat.SummaOst
FROM tblHome INNER JOIN (Q1 INNER JOIN tblPlat ON tblPlat.ID_plat = Q1.ID_plat  And tblPlat.DatePlat = Q1.DatePlat) ON Q1.ID_home = tblHome.ID_home

Те идея заключается в том, чтобы найти для каждого ID_home и ID_plat максимальную дату, а затем уже по найденым значениям из таблиц tblHome и tblPlat найти еужные значения
snocky
Дата: 19.09.2005 10:33:58
вот так сделал:
SELECT DISTINCTROW tblHome.CodeHome, tblHome.NameStreet, tblHome.NumbHome, Last(tblPlat.SummaOst) AS [Last - SummaOst], 
       Last(tblPlat.DatePlat) AS [Last - DatePlat], Last(tblPlat.Status) AS [Last - Status] 
       FROM tblPlat INNER JOIN (tblHome INNER JOIN tblPromeg ON tblHome.ID_home = tblPromeg.ID_home) ON tblPlat.ID_plat = tblPromeg.ID_plat 
       WHERE (((tblPlat.Status)=" & DQuote(stat2) & ") and ((tblPlat.DatePlat) <= #" & Format(date1, "mm/dd/yy 23:59:59") & "#)) 
       GROUP BY tblHome.CodeHome, tblHome.NameStreet, tblHome.NumbHome 
       & "ORDER BY tblHome.CodeHome;
snocky
Дата: 19.09.2005 10:36:01
вроде бы работает :)

ps:
в конце знаки & " лишние
Пользователь2
Дата: 19.09.2005 10:46:10
SELECT z1.CodeHome, z1.[Max-DatePlat], tblPlat.SummaOst
FROM (
SELECT tblHome.CodeHome, Max(tblPlat.DatePlat) AS [Max-DatePlat]
FROM (tblHome INNER JOIN tblPromeg ON tblHome.ID_home = tblPromeg.ID_home) 
INNER JOIN tblPlat ON tblPromeg.ID_plat = tblPlat.ID_plat
GROUP BY tblHome.CodeHome) As z1 
INNER JOIN tblPlat ON z1.[Max-DatePlat] = tblPlat.DatePlat;