select
supplier,
sum(payment) payment
sum(case when vat_rate = 10 then payment * 0.1 else 0 end) vat10,
sum(case when vat_rate = 20 then payment * 0.2 else 0 end) vat20,
sum(case when vat_rate = 0 then payment else 0 end) vat0
from
supplies
group by
supplier
Кросс запросы
Раньше писал на VB. Там с кросс запросами все нормально.
Теперь необходимо из таблицы вида:
Поставщик Сумма %НДС СуммаНДС
Иванов_____250____ 10_____25
Петров_____350____ 20_____70
Сидоров___ 400_____0______0
получить данные таком виде:
Поставщик__Сумма__10%__20%__БезНДС
Иванов______250____25___0_____ 0
Петров______ 350_____0__70_____0
Сидоров_____400_____0___0____400
Подскажите как это сделать в CB6, база - IB6
как вариант можно сделать 3 запроса с использованием where, но может быть это можно сделать лучше
Цитата:
Originally posted by sklutov
база - IB6
база - IB6
Я немного знаком только с Firebird, в версии 1.5 они добавили много новых возможностей, чтобы лучше соответствовать стандартам SQL. Про возможности только читал, но вплотную с ними работать не приходилось.
В Oracle это будет выглядеть так:
Код:
Посмотри по мануалу, можно ли подобное реализовать в синтаксисе IB. Если нет, есть еще второй способ, основанный на inline view и full outer join. Он не такой производительный, как предложенный выше. Но зато опять-таки все решается одним запросом.