:: Архив конференции по VFP до 2005 года
Не хватает агрегирующей функции
And

Сообщений: 901
Дата регистрации: 29.01.2001
Суть простая: есть таблица комментариев специалистов к заказу (выкинем лишние поля)

Номер заказ | Код специалиста
1 | 4
1 | 5
2 | 5
3 | 4
3 | 5
3 | 6

Селектом нужно получить выборку с группировкой по номеру заказа, в которой должно быть понятно, есть ли в заказе комментарий специалистов с кодами 4,5,6, т.е. итоговая выборка

Номер заказа | Специалист 4 | Специалист 5 | Специалист 6
1 | Да | Да | Нет
2 | Нет | Да | Нет
3 | Да | Да | Да

Можно именно селектом результат получить? Тут мог бы помочь в качестве значения поля
встроенный селект, но не знаю, тут можно ли его использовать, какой синтаксис?
Ratings: 0 negative/0 positive
Re: Не хватает агрегирующей функции
AleksM
Автор

Сообщений: 17881
Дата регистрации: 11.11.2003
Если исходить из вышеописанного, то (только не в "Да/Нет", а в "1/0", для простоты):

select NumZak, iif(CodSpec=4,1,0) Spec4, iif(CodSpec=5,1,0) Spec5, iif(CodSpec=6,1,0) Spec6 from ...

Далее проанализировать итоговый селект.




------------------
Лучше переесть, чем недоспать.
Не спеши, а то успеешь.
Ratings: 0 negative/0 positive
Re: Не хватает агрегирующей функции
And

Сообщений: 901
Дата регистрации: 29.01.2001
Вот спасибо, сразу не увидел!
Правда еще добавил функцию и группировку и получил самое то:
select NumZak, max(iif(CodSpec=4,1,0)) Spec4, max(iif(CodSpec=5,1,0)) Spec5, max(iif(CodSpec=6,1,0)) Spec6 from comment group by NumZak

Спасибо, еще раз!
Ratings: 0 negative/0 positive
Re: Не хватает агрегирующей функции
AleksM
Автор

Сообщений: 17881
Дата регистрации: 11.11.2003
P.S. Может тебе для таких случаев wzpivot.app из набора мастеров Foxа подойдет?




------------------
Лучше переесть, чем недоспать.
Не спеши, а то успеешь.
Ratings: 0 negative/0 positive


Извините, но у вас нет прав для того, чтобы оставлять сообщения в этом форуме.

On-line: 5 (Гостей: 5)

© 2000-2024 Fox Club 
Яндекс.Метрика