Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.03.09;
Скачать: [xml.tar.bz2];

Вниз

Поможите люди добрые SQL запрос составить!   Найти похожие ветки 

 
StasN   (2004-02-09 18:29) [0]

Имеется:
1) я, "начинающий" в программер баз данных под Дельфи.
2) Дельфя 4(какая уж есть!), старые базы данных на FOX:
1 база assortim - продукция пекарни, поля codA числовое, nameA символьное, т.е.:
1,"хлеб ржаной"
2,"булки итальянские", и т.д.
2 база product - продукты из которых печем, поля codP числовое, nameP символьное, т.е.:
1,"мука 1 сорт"
2,"дрожжи", и т.д.
3 база recept - собственно рецепты, поля codA,codP,kol числовые:
1,1,25 т.е. хлеб ржаной,муки 25 грамм
1,2,0.5 т.е. хлеб ржаной,дрожжи 0,5 грамм
2,2,0,8 т.е. булки итальянские,дрожжи 0,8 грамм
------------------------------------------------------------
поместил на форму Dbgrid с Assortim.Name выбираю чтолибо из ассортимента рядом должен появиться рецепт (в другом DBGride)
Product.name, recept.kol
Так вот, не могу никак SQL запрос составить. Не поможет никто?


 
sniknik   (2004-02-09 18:42) [1]

а чего не получается?

посмотри связи мастер/детайл, должно подойти. (пример в дельфях должен быть, правда вот в 4й (?))
все что надо сделать связать 2 таблицы/запроса (это из хелпа)
Orders.MasterSource := CustSource;
Orders.MasterFields := "CustNo";


 
Vlad   (2004-02-09 18:47) [2]

чего, вот это не можешь составить ?
select * from recept where codA=:param1
плюс в таблице ассортимента на событие AfterScroll пишешь:

QueryRecept.Close;
QueryRecept.ParambyName("param1").AsInteger:=Assortim.FieldByName("codA").AsInteger;
QueryRecept.Open;

(вариант для BDE)
Или еще проще, можешь связать два датасета Master-detail


 
StasN   (2004-02-10 20:57) [3]

Нашел 7 delphi, там есть Master-detail, два дня голову ломал где там и чё! Не разобрался.

чего, вот это не можешь составить ?
select * from recept where codA=:param1

все поля из recept мне не нужны (ну ладно не нужные спрячем), но мне нужно еще и название продукта из product, а не его номер из рецепта.
Кстати ":" в codA=:param1 это очепятка? Или так надо?

Или еще проще, можешь связать два датасета Master-detail
Поподробнее можно?
Нужно чтобы выводился, когда я выбираю, скажем, "хлеб ржаной", рецепт типа:
мука 200 гр
дрожжи 0.5 гр.
Вот что мне нужно, хотел попробовать написать это через SELECT, но вот какие проблемы возникли:
select product.name,recept.kol from product,recept,assortim
а дальше проблемы с where (возможно нужно запрос в запросе или join делать?)
where recept.codA=Assortim.codA это основное условие, т.е. записей должно быть ровно столько сколько их подходит по этому условию Product.codP=recept.codP т.е. выбрать из рецепта код продукта (и вывести именно его наименование) т.е. указатель в базе данных Product должен переместится к нужной позиции,а если я соединю эти условия через AND ничего не получится.
Вот по-моему так. Я понятно объяснил?
Что посоветуете?


 
Vlad   (2004-02-10 21:20) [4]

select r.*, p.NameP, a.NameA from recept r, product p, assortim a
where r.codA=a.CodA and r.CodP=p.CodP


> Кстати ":" в codA=:param1 это очепятка? Или так надо?

Так надо.


 
StasN   (2004-02-11 02:19) [5]

Спасибо, уже что-то вырисовывается, но выдается вся база рецепт, а мне надо только = текущему assortim.codA.
Т.е. отдельная табличка с ассортиментом когда выбираю что-либо - появляется в отдельной табличке сам рецепт.

А что значит это ":"?


 
StasN   (2004-02-11 02:28) [6]

Ага кажется понял ":" это подстава (макрозамена)?!

А как фильтру DBgrida дать в качестве аргумента чужое поле?
Мои попытки в гриде recept в свойстве filter значение codA=product.codA не берет, codA=product.FieldByName("codA").Value тоже.
Как это правильно написать и возможно?


 
ЮЮ   (2004-02-11 02:33) [7]

filter надо самому сформировать как текстовую строку:

filter := "CodA=" + product.FieldByName("codA").asString;


 
sniknik   (2004-02-11 08:13) [8]

D:\Program Files\Borland\Delphi7\Demos\Db\Filter\filter.dpr



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

Форум: "Базы";
Текущий архив: 2004.03.09;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.008 c
1-25749
Senti
2004-02-25 20:48
2004.03.09
Вопрос по созданию и загрузке форм !


14-25898
DDA
2004-02-17 14:05
2004.03.09
Защита от RegShot , RegSnap


1-25782
Demon_mhm
2004-02-26 11:55
2004.03.09
Как изменить цвет фонта на кнопке


14-25894
ИМХО
2004-02-16 03:23
2004.03.09
В чем причина феноменального успеха Microsoft Corp.?


14-25919
Домарощинер
2004-02-13 15:47
2004.03.09
Почему Рыбкин оказался в Киеве?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский