|
Помогите составить запрос | ☑ | ||
|---|---|---|---|---|
|
0
DirecTwiX
07.07.12
✎
14:01
|
Есть таблица
10 20 -30 -10 40 По ней итог 30. Нужно выбрать отсюда поля того же знака, что и итог. В данном случае это 10 20 40. Через два запроса это сделать легко. Хотелось бы через 1. Была идея посчитать итог, а потом наложить условие "Где Поле*Итог>0", но с большими числами такое не прокатит... |
|||
|
1
andrewks
07.07.12
✎
14:06
|
having
|
|||
|
2
DirecTwiX
07.07.12
✎
14:08
|
И каким же образом???
|
|||
|
3
Rie
07.07.12
✎
14:11
|
(2) Считаешь итог в подзапросе. Потом - соединяешь и наслаждаешься результатом.
(1) Не взлетит. |
|||
|
4
DirecTwiX
07.07.12
✎
14:25
|
И по какому условию соединяешь???
|
|||
|
5
DirecTwiX
07.07.12
✎
14:29
|
Придумал. Умножать поле не на Итог, а на знак итога)
|
|||
|
6
Rie
07.07.12
✎
14:32
|
(4) Например
ВЫБРАТЬ Исходная.Предмет, Исходная.Числовое ИЗ Исходная ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ Исх.Предмет, АГРЕГАТ(Исх.Числовое) КАК Итог ИЗ Исходная КАК Исх СГРУППИРОВАТЬ ПО Исх.Предмет ) КАК Итоговая ПО Исходная.Предмет = Итоговая.Предмет ГДЕ Исходная.Числовое*Итоговая.Итог >0 |
|||
|
7
DirecTwiX
07.07.12
✎
15:21
|
(6) Я же сказал, что не хочу умножать, т.к. при больших числах может отработать неправильно =\
Сделал так: ВЫБРАТЬ УправленческийОбороты.КорСчет, УправленческийОбороты.СуммаОборот КАК СуммаОборот ПОМЕСТИТЬ Выборка ИЗ РегистрБухгалтерии.Управленческий.Обороты(&Начало, , , Счет = &Счет, , ) КАК УправленческийОбороты ГДЕ УправленческийОбороты.КорСчет.Родитель = &Расходы ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СУММА(Выборка.СуммаОборот) КАК Сумма ПОМЕСТИТЬ Итог ИЗ Выборка КАК Выборка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Выборка.КорСчет, Выборка.СуммаОборот ИЗ Выборка КАК Выборка, Итог КАК Итог ГДЕ Выборка.СуммаОборот*(ВЫБОР КОГДА Итог.Сумма > 0 ТОГДА 1 ИНАЧЕ -1 КОНЕЦ) > 0 |
| Форум | Правила | Описание | Секции | Поиск |