Страница 1 из 1

Запрос с расчетом сальдо и условие

Добавлено: 06 июн 2006, 03:52
Lars
CHARGE- начисление и остатки за прош. месяц.;
PAYMENT-оплата

SELECT SNAME,
(
(SELECT СуммаСальдо FROM CHARGE ... ) --Сальдо на начало месяца
+
(SELECT SUM(СуммаНачисл) FROM CHARGE ... ) --Общ. начисл. за месяц
-
(SELECT SUM(СуммаОплаты) FROM PAYMENT...)--Общ. оплата за месяц
) DUTY_SUM
Выдает(записей ок. 4500):
Иванов | 15600.00
Петров | 1500.00
Сидоро | 1600.00

Надо вывести только те, у которых сальдо на конец > 1500 и т.п., т.е. долги в каких-то пределах.

Вариант с
" WHERE DUTY_SUM >1500 "
не работает. Почему?
Как возможно построить такой запрос? ХП?

Добавлено: 06 июн 2006, 08:02
Dimitry Sibiryakov
Да, ХП. Будь выражение попроще можно было бы обойтись HAVING, но подзапрос...

Добавлено: 06 июн 2006, 08:13
Lars
Dimitry Sibiryakov писал(а):Да, ХП. Будь выражение попроще можно было бы обойтись HAVING, но подзапрос...
Почему PAY_SUM не видит в WHERE?

Добавлено: 06 июн 2006, 08:17
Dimitry Sibiryakov
Потому что у тебя нет столбца PAY_SUM.

Добавлено: 06 июн 2006, 08:21
Lars
Dimitry Sibiryakov писал(а):Потому что у тебя нет столбца PAY_SUM.
доходчиво

Добавлено: 06 июн 2006, 08:59
Lars
В ХП плохо, что не получить РекордКоунт, соответ. процесс отобразить плохо удасться

Добавлено: 06 июн 2006, 09:31
CyberMax
Lars писал(а):В ХП плохо, что не получить РекордКоунт, соответ. процесс отобразить плохо удасться
С чего ты взял? Набор, полученный из ХП, ничем не отличается от полученного через прямой SELECT.

Добавлено: 06 июн 2006, 19:04
Lars
Cybermax писал(а):
Lars писал(а):В ХП плохо, что не получить РекордКоунт, соответ. процесс отобразить плохо удасться
С чего ты взял? Набор, полученный из ХП, ничем не отличается от полученного через прямой SELECT.
У компонента Fibplus StorProc нет метода FetchAll, и рекорд каунт показывает 1!

Добавлено: 06 июн 2006, 21:00
kdv
У компонента Fibplus StorProc нет метода FetchAll, и рекорд каунт показывает 1!
ты значит, писатель, а не читатель, так?
с чего ты взял, что СЕЛЕКТИВНУЮ процедуру надо вызывать в storedproc? И с чего ты взял, что в нем FetchAll будет работать? :)
Джефф всех надул... В общем, StoredProc с датасетом не имеет ничего общего (если смотреть в код). Используй обычный
select * from procedure в IBQuery, IBSQL, IBDataSet...

специально же есть статья, в которой все написано:
http://www.ibase.ru/devinfo/ibx.htm
докрути до IBStoredProc.

Добавлено: 06 июн 2006, 22:21
Lars
kdv писал(а):
У компонента Fibplus StorProc нет метода FetchAll, и рекорд каунт показывает 1!
ты значит, писатель, а не читатель, так?
с чего ты взял, что СЕЛЕКТИВНУЮ процедуру надо вызывать в storedproc? И с чего ты взял, что в нем FetchAll будет работать? :)
Джефф всех надул... В общем, StoredProc с датасетом не имеет ничего общего (если смотреть в код). Используй обычный
select * from procedure в IBQuery, IBSQL, IBDataSet...

специально же есть статья, в которой все написано:
http://www.ibase.ru/devinfo/ibx.htm
докрути до IBStoredProc.
Ладно уж вам, и читаю тоже...