![]() |
|
Модераторы: LSD |
![]()
|
|
| x404 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 30.11.2003 Репутация: нет Всего: нет |
Как из одной таблички(МАТЕРИАЛЫ) выбрать данные так, чтобы из двух
одинаковых по наименованию и диаметру , но разных по цене полей, отобразилась только то поле,которое имеет самую последню дату занесения(поле ДАТА в табличке есть). |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
Примечания: 1) Структура таблицы m - char price - int Date - datetime 2)Table4 - имя таблицы, подставить своё имя таблицы 3) x - псевдоним таблицы, может быть что угодно 4) m - название материала, по нему выбирается только одна запись 5) Date- поле типа datetime? выбирается максимальное, квадратные скобки не нужны, просто надо поставить реальное имя поля 6) maxdate - псевдоним поля, можно поставить что угодно 7) y - псевдоним таблицы, может быть что угодно -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| x404 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 30.11.2003 Репутация: нет Всего: нет |
Мне чуток другое надо. Я за сегодня набросал вот такое:
select IM.id_im, IM.id_izdl1,IM.id_mat_n1, MN.Naim_mat_n, MN.Size, MN.GOST, MN.Ed_izm, MN.Mass_n, (select DISTINCT Price from Material where Naim_mat=Naim_mat_n and Size_m=Size) as Price, Cost from izd_mat IM join Mat_norm MN on MN.id_mat_n=IM.id_mat_n1 where type=1 and id_izdl1=:Izdel.id_izdel Но когда начинаю открывать этот запрос, то выскакивает сообщение, что запрос не может возвращать более одного результата. Я че не там distinct воткнул, так вроде мне в других местах и надо. даты пока не делал мне бы с этим для начала разобраться. Используется TAdoDataSet. А база делается с использованием Sybase. |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
Тогда я не понимаю чего тебе надо, я таблицу создал, кверя работает, выбирает именно так как ты просил - только все названия и прайсы в одном экземпляре, причём если есть 2 экземпляра то выдаёт тот для которого дата последняя... -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
PS. Sybase удобная база данных, можно сделать например парочку вложенных view и суммарную кверю на них, коли за одну кверю не можешь отхватить всю нужную информацию...
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| x404 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 30.11.2003 Репутация: нет Всего: нет |
Спасибо за совет. Я видимо немного протормозил. Вообщем все заработало.
Оказалось, что и дата может быть в полях одинакова и поэтому пришлось искать новый путь. Теперь вместо даты внесения использую id материала. А SQL выглядит так: select IM.id_im, IM.id_izdl1,IM.id_mat_n1, MN.Naim_mat_n, MN.Size, MN.GOST, MN.Ed_izm, MN.Mass_n, (select max(id_mat) from Material where Naim_mat=Naim_mat_n and Size_m=Size) as maxid, тут отбирается максимальный id (select Price from Material where Naim_mat=Naim_mat_n and Size_m=Size and id_mat=maxid) as Price, а тут по найденному id отбирается цена на метериал (Price*MN.Mass_n) as Cost from izd_mat IM join Mat_norm MN on MN.id_mat_n=IM.id_mat_n1 where type=1 and id_izdl1=:Izdel.id_izdel |
|||
|
||||
![]()
|
| Правила форума "Общие вопросы по базам данных" | |
|
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |