Вниз
Скачать: CL | DM;

Двойной lookup   Найти похожие ветки 

 
Genry   (2002-05-17 12:30) [0]

Господа, подскажите как организовать двойной lookup. Имеется три таблицы. По ключу (напр. ID заказа)из первой смотрим во вторую (в ней хранятся ID израсходованных материалов по всем заказам), т.е. выбираем ID всех материалов, израсходованных на данный заказ. В третьей таблице хранятся данные о материалах в т.ч. их названия. Заглядываем туда, дабы показать пользователю названия всех израсходованных материалов. Т.о. имеем двойной lookup.
Подскажите как его организовать?


 
Val ©   (2002-05-17 13:20) [1]

select z.ZAKAZNUMBER, r.HOWMANY, m.MATERIALNAME
from MATERIAL m, ZAKAZ z, RASHOD r
where z.ID=r.IDZAKAZ and
m.ID=r.IDMATERIAL


 
Genry   (2002-05-17 14:18) [2]

Val, cпасибо.
Но не совсем то. Надо: есть грид с данными по заказу Z. Есть ListBox. При перемещении по гриду в ListBox"e показываются все материалы, использованные для изготовления заказа с текущим номером.


 
esVer   (2002-05-17 14:56) [3]

Query1.SQL.Text:="select ZAKAZNUMBER from ZAKAZ;
Query2.SQL.Text:="select ZAKAZNUMBER, HOWMANY, MATERIALNAME from MATERIAL;

DataSource1.DataSet:=Query1;
DataSource2.DataSet:=Query2;
Query2.MasterSource:=DataSource1;

На Query2.AfterOpen заполняем данными ListBox (если обычный),
если это db-control, то обновится сам




 
Val ©   (2002-05-17 14:59) [4]

стройте запрос, выбирая материалы по данной связке с дополнительным условием-проверкой на конкретный, текущий ID заказа и его результаты записываете в свой листбокс.


 
Val ©   (2002-05-17 15:02) [5]

>esVer (17.05.02 14:56)
у автора, судя по всему таблица материалов - обыкновенный справочник, откуда там номер заказа и какое-то ни было количество?


 
Genry   (2002-05-17 15:14) [6]

Господа, всем спасибо, все свободны :-).
На самом деле я просто туплю. Это я только что понял. Все уже сделал.
Эще раз всем спасибо.


 
esVer   (2002-05-17 15:41) [7]

Для Val:

В заказе может использовать 5 материалов, а может и 10.
Отсюда логично иметь отдельную таблицу :

ID_ZAKAZ, ID_MATERIAL, COUNT_MATERIAL

ID_ZAKAZ - ссылка на таблицу заказов
ID_MATERIAL будет ссылкой на справочник материалов


 
Val ©   (2002-05-17 15:58) [8]

ну да, классическая таблица-связка,а я вам о чем? А ваши выборки откуда происходят?



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.01 c
3-30680
Rub
2002-05-17 14:01
2002.06.10
Народ, как бы в DBCtrlGrid-e использовать картинку для


6-30958
Gloomy
2002-03-28 15:04
2002.06.10
Коллеги, не откажите в помощи… pls!!!


14-30964
Oleg_Gashev
2002-05-04 17:06
2002.06.10
Новость дня: HP и Compaq объединились


3-30669
MagG0T
2002-05-17 09:19
2002.06.10
Выборка через поле типа Data


3-30704
AST
2002-05-18 10:59
2002.06.10
Зачем нужно поле IndexFiles в компоненте TTable?




   Наверх