Topic: Sql запрос с подключением внешней таблицы

Приветствую всех!
Пишу небольшую базу по учету мебели в производстве. Названия мебели однотипные и вынесены в отдельную таблицу справочник. При sql запросе к базе данных (необходимо вывести записи отвечающие определенным требованиям, поэтому стандартный поиск не подходит) включаю процедуру присоединения к поиску внешней таблицы с названиями изделий. Возник вопрос: как вывести в грид поле с названием изделия?

SELECT
tbsofa.id,tbsofa.sofanom,tbsofa.sofanomzak,tbsofa.sofabuyer,tbsofa.sofarun,tbsofa.sofaend,tbsofa.sofaexport

FROM tbsofa

LEFT OUTER JOIN tbsofaname ON tbsofaname.id = tbsofa.id

WHERE tbsofa.sofaexport>={vivozS} AND tbsofa.sofaexport<={vivozPO};

Вот именно  tbsofaname и надо вывести в таблицу наравне с другими данными.

Re: Sql запрос с подключением внешней таблицы

Приветствую,


в вашем запросе уже подключена внешняя таблица (tbsofaname), поэтому просто в разделе SELECT указываете необходимые поля из  таблицы tbsofaname

SELECT
tbsofaname.sofaname, 
tbsofa.id,tbsofa.sofanom,tbsofa.sofanomzak,tbsofa.sofabuyer,tbsofa.sofarun,tbsofa.sofaend,tbsofa.sofaexport

FROM tbsofa

LEFT OUTER JOIN tbsofaname ON tbsofaname.id = tbsofa.id

WHERE tbsofa.sofaexport>={vivozS} AND tbsofa.sofaexport<={vivozPO};


судя по запросу, вам необходимо сделать выборку по интервалу дат?
это можно сделать без применения SQL запроса, достаточно кнопки Поиск и два компонента DateTimePicker, у которых есть свойство Filter, у одного из них выбираете значние >= а у друкого <=

Dmitry.

Re: Sql запрос с подключением внешней таблицы

Спасибо! Действительно можно обойтись без sql. Все работает.

Re: Sql запрос с подключением внешней таблицы

А вот в таком запросе наверное без SQl не обойтись.

SELECT
tbsofa.id,
tbsofa.sofanom,
tbsofa.sofanomzak,
tbsofaname.sofaname,
tbsofa.sofabuyer,
tbsofa.sofarun,
tbsofa.sofaplanend,
tbsofa.sofaclothparish,
tbclothsellerone.clothsellerone,
tbsofa.clothname1,
tbsofa.clothmetr1,
tbsofa.clothprise1,
tbclothsellertwo.tbclothsellertwo,
tbsofa.clothname2,
tbsofa.clothmetr2,
tbsofa.clothprise2,
tbclothsell.tbclothsell,
tbsofa.clothname3,
tbsofa.clothmetr3,
tbsofa.clothprise3,
tbcloths.tbcloths,
tbsofa.clothname4,
tbsofa.clothmetr4,
tbsofa.clothprise4,
tbsofa.sofanote

FROM tbsofa

LEFT OUTER JOIN tbsofaname ON tbsofaname.id = tbsofa.id
LEFT OUTER JOIN tbclothsellerone ON tbclothsellerone.id = tbsofa.id
LEFT OUTER JOIN tbclothsellertwo ON tbclothsellertwo.id = tbsofa.id
LEFT OUTER JOIN tbclothsell ON tbclothsell.id = tbsofa.id
LEFT OUTER JOIN tbcloths ON tbcloths.id = tbsofa.id

WHERE tbsofa.sofaclothparish IS NULL AND tbclothsellerone.clothsellerone={ComboBox1} OR tbclothsellertwo.tbclothsellertwo={ComboBox1} OR tbclothsell.tbclothsell={ComboBox1} OR tbcloths.tbcloths={ComboBox1};

В общем нужны все записи где tbsofa.sofaclothparish пустое поле, а значение {ComboBox1} в любой из ячеек таблицы.

Re: Sql запрос с подключением внешней таблицы

mihel
Да, такой поиск можно сделать только с помощью SQL

Dmitry.

Re: Sql запрос с подключением внешней таблицы

Да, вопрос забыл: что я написал не так? Запрос то не работает.
smile

Re: Sql запрос с подключением внешней таблицы

не правильно были объединены таблицы и ошибки в секции WHERE

SELECT
tbsofa.id,
tbsofa.sofanom,
tbsofa.sofanomzak,
tbsofaname.sofaname,
tbsofa.sofabuyer,
tbsofa.sofarun,
tbsofa.sofaplanend,
tbsofa.sofaclothparish,
tbclothsellerone.clothsellerone,
tbsofa.clothname1,
tbsofa.clothmetr1,
tbsofa.clothprise1,
tbclothsellertwo.tbclothsellertwo,
tbsofa.clothname2,
tbsofa.clothmetr2,
tbsofa.clothprise2,
tbclothsell.tbclothsell,
tbsofa.clothname3,
tbsofa.clothmetr3,
tbsofa.clothprise3,
tbcloths.tbcloths,
tbsofa.clothname4,
tbsofa.clothmetr4,
tbsofa.clothprise4,
tbsofa.sofanote

FROM tbsofa

LEFT OUTER JOIN tbsofaname ON tbsofaname.id = tbsofa.id_tbsofaname
LEFT OUTER JOIN tbclothsellerone ON tbclothsellerone.id = tbsofa.id_tbclothsellerone
LEFT OUTER JOIN tbclothsellertwo ON tbclothsellertwo.id = tbsofa.id_tbclothsellertwo
LEFT OUTER JOIN tbclothsell ON tbclothsell.id = tbsofa.id_tbclothsell
LEFT OUTER JOIN tbcloths ON tbcloths.id = tbsofa.id_tbcloths

WHERE tbsofa.sofaclothparish IS NULL AND 
tbsofa.id_tbclothsellerone={ComboBox1} OR 
tbsofa.id_tbclothsellertwo={ComboBox1} OR 
tbsofa.id_tbclothsell={ComboBox1} OR 
tbsofa.id_tbcloths={ComboBox1};
Dmitry.