![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Реально ли это сделать одним запросом ? [D5, IB6.x]
Andrey V. © (2004-06-16 15:42:00)Что-то не получается у меня
Таблица:
-----------------------------------
field_1 field_2 field_3 field_4
-----------------------------------
Иванов 3 33 1
Петров 4 2 1
Иванов 2 12 0
Сидоров 5 6 1
-----------------------------------
field_4 принимает только 1 и 0
Надо:
-----------------------------------
field_1 Симма Сумма
field_2 field_3
для для
field_4=0 field_4=1
-----------------------------------
Иванов 2 33
Петров 0 2
Сидоров 0 6
-----------------------------------
Пример упрощен, да простят меня люди с вышеупомянытыми фамилиями
Sandman25 (2004-06-22 09:36:00) [1][3] Andrey V. © (22.06.04 08:34)
А вот это уже перекрестный запрос. В принципе реализуется через динамический SQL, но довольно медленно работает, естественно. Поищите в форуме sql.ru по слову "перекрестный"
bushmen (2004-06-22 09:26:00) [2]>field_4 принимает только 1 и 0
Вы сами помните, какие условия задачи ставили?
Andrey V. (2004-06-22 08:34:00) [3]Ну это хорошо когда field_4 принимает только 1 и 0.
А вот такой пример:
-----|-----|
Вася Водка
Вася Водка
Петя Пиво
Вася Пиво
Вася Водка
Петя Пиво
-----|-----|
Как получить такой результат :
Имя Пиво Водка
-----|-----|------
Вася 1 3
Петя 2 0
-----|-----|------
Просмотрел Грубера, не увидел как ТАК развернуть запрос...
Andrey V. (2004-06-16 15:50:00) [4]Sandman25, ну вы везде успеваете :-)
Сейчас буду пробовать ...
Sandman25 (2004-06-16 15:46:00) [5]select familyname, sum(field2*(1-field4)), sum(field3*field4)
from mytable
group by familyname