Xpoint
   [напомнить пароль]

Построение запроса - как сделать?

Метки: [без меток]
2007-03-22 21:21:27 [обр] Майя(0/2)[досье]
Всем добрый вечер.
Есть таблица заказов. К каждому заказу привязаны работы. Выводим общий список заказов. Если его связать с работами, то будет столько заказов, сколько у него работ.
Если сгруппировать group by, то будет один заказ без работ.
А заказчик хочет, чтобы был заказ, и в отдельной колонке работы этого заказа через запятую. Или две колонки отдельные, и в них работы - все у одного заказа.
Есть ли возможность сделать такой запрос в SQL?
Как вообще находится выход из таких ситуаций?
Большое спасибо за ответы.
спустя 12 часов [обр] Thirteensmay(0/157)[досье]
Майя[досье] "Если его связать с работами, то будет столько заказов, сколько у него работ." - Это если глупо связывать, а если нормально - не будет. Простейший случай:
Таблица заказов: zak_id, name, пр.
Таблица работ: rab_id, name, zak_id, пр.
SQL запрос на выборку работ для заказа X: select rab_id, name from rabots where zak_id=X
спустя 5 часов [обр] Дмитрий(0/4)[досье]
SELECT zak.name, GROUP_CONCAT(rab.name DELIMTER ', ') AS rab_names
FROM zak INNER JOIN rab ON zak.zak_id=rab.zak_id
GROUP BY zak.name;
спустя 23 часа [обр] Алексей Севрюков(5/1292)[досье]
Дмитрий[досье] А Вы уверены что в MSSQL есть GROUP_CONCAT? Ваш пример для MySQL.
спустя 3 часа 32 минуты [обр] Сергей Сирик(25/737)[досье]
В MS - только писать процедуру которая бы сделала временную искомуюу временную таблицу, которую потому и выдают в конце процедуры на выход.
спустя 1 день 3 часа [обр] Майя(0/2)[досье]
товарищи, всем большое спасибо!
да, в МС СКЛ простого решения нет
я сделала связанный запрос (это в дельфе), с параметром равным номеру заказа
и вывожу рядышком с таблицей заказов маленькую таблицу работ
в ней для 1 заказа может быть несколько работ
надеюсь заказчика устроит этот модифицированный вариант...
спустя 14 часов [обр] Алексей Рюмин aka Dwarf(120/864)[досье]
спустя 8 месяцев [обр] sergik[досье]
А как формируешь отчет сразу по всем заказам с привязкой работ? интересно ваше решение .
Powered by POEM™ Engine Copyright © 2002-2005