Предикаты (фразы) в предложении SELECT
Простые условия <, >, =, < > - не равно и др.
Логические (булевы) функции - AND, OR, NOT
Предикаты с использованием ключевых слов In, like, is, between
Агрегатные SQL-функции
SUM (сумма), COUNT (количество), MIN (минимальное значение), MAX (максимальное значение) или AVG (среднее значение), SUBSTR и др.
3. Сложный выбор со множеством условий SELECT SUBSTR(baccountid,1,4),
SUM (summaactive) summaactive, SUM (summapassive) summaactive
FROM (SELECT baccountid,
SUM (DECODE (SIGN (summanoweq), -1, summanoweq/100, 0) ) summaactive,
0 summapassive FROM arc_balance b
WHERE arcdate = '27.10.2003' AND CORRMODE in (0,2) AND currencyid = 840
AND baccountid NOT IN
(1212, 2072, 2510, 2511, 3015, 3107, 3115, 3408, 3906) AND SUBSTR (baccountid, 1, 1) NOT IN ('5', '6', '7', '8') AND SUBSTR (baccountid, 1, 2) NOT IN
('38', '43', '44', '45', '90', '91', '95', '96', '97', '98', '99' ) AND SUBSTR (baccountid, 1, 3) NOT IN ('930', '939')
GROUP BY baccountid UNION ALL
SELECT baccountid, 0 summaactive,
SUM (DECODE (SIGN (summanoweq), 1, summanoweq/100, 0) ) summapassive
FROM arc_balance
WHERE arcdate = '27.10.2003' AND CORRMODE in (0,2) AND currencyid = 840
AND baccountid NOT IN (3015, 3107, 3115, 3408, 3623, 3907) AND SUBSTR (baccountid, 1, 1) NOT IN ('4', '5', '6', '7', '8') AND SUBSTR (baccountid, 1, 2) NOT IN
('38', '90', '91', '95', '96', '97', '98', '99') AND SUBSTR (baccountid, 1, 3) NOT IN
('250', '251', '264', '370', '931') GROUP BY baccountid)
GROUP BY SUBSTR(baccountid,1,4)