![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сложность в построении запроса [D7, XP]
Mery © (2010-01-12 12:08:00)Не могу сообразить с запросом. подскажите, п-та
есть 2 таблицы: в одной ФИО покупателя, в другой даты покупок, связанные с покупателями. Как выбрать ФИО всех покупателей и даты их ПОСЛЕДНИХ покупок?
Ega23 (2010-01-12 13:30:00) [21]
> даёт ошибку на синтаксис: нельзя использовать знак =.
Ты не указал СУБД. Для MSSQL всё прекрасно работает.
Select P.FIO, DatIn = Max(Pr.DateIn)
замени на
Select P.FIO, Max(Pr.DateIn) as DateIn
Sergey13 (2010-01-12 13:27:00) [22]> [3] Mery (12.01.10 13:20)
> даёт ошибку на синтаксис: нельзя использовать знак =.
Ужас! Пожалуйся на Ega23 в милицию. Дает непроверенный на твоем "кстати" серваке код.
Mery (2010-01-12 13:20:00) [23]>turbouser © (12.01.10 12:16) [1]
нет. всё равно все записи берёт, не выбирая МАХ дату.
>Ega23 © (12.01.10 12:23) [2]
даёт ошибку на синтаксис: нельзя использовать знак =.
кстати, пользуюсь Firebird 2.0. Компаненты IB.
Ega23 (2010-01-12 12:23:00) [24]
Create table Pers(
PersID int identity (1,1) not null,
FIO varchar(32) not null,
constraint PK_Pers primary key (PersID)
);
Create table Purchasings (
UNID int identity (1,1) not null,
PersID int not null,
DateIn datetime not null,
constraint PK_Purch primary key (UNID),
constraint FK_Purch_Pers foreign key (PersID)
references Pers (PersID)
);
insert into Pers (FIO) values ('ААА');
insert into Pers (FIO) values ('БББ');
insert into Pers (FIO) values ('ВВВ');
insert into Pers (FIO) values ('ГГГ');
insert into Pers (FIO) values ('ДДД');
insert into Purchasings (PersID, DateIn) Values (1, 1);
insert into Purchasings (PersID, DateIn) Values (1, 2);
insert into Purchasings (PersID, DateIn) Values (1, 3);
insert into Purchasings (PersID, DateIn) Values (1, 4);
insert into Purchasings (PersID, DateIn) Values (2, 1);
insert into Purchasings (PersID, DateIn) Values (2, 2);
insert into Purchasings (PersID, DateIn) Values (2, 3);
insert into Purchasings (PersID, DateIn) Values (3, 1);
insert into Purchasings (PersID, DateIn) Values (3, 2);
insert into Purchasings (PersID, DateIn) Values (4, 1);
Select * from Purchasings
Select P.FIO, DatIn = Max(Pr.DateIn)
from Pers P inner join Purchasings Pr on (P.PersID = Pr.PersID)
group by P.FIO
turbouser (2010-01-12 12:16:00) [25]select F.ФИО, MAX(D.даты покупок) таблица_фио F join таблица_дат D on F.xxx=D.xxx
group by F.ФИО