Форум: "Базы";
Текущий архив: 2002.08.05;
Скачать: [xml.tar.bz2];
Внизпомогите с отчетом Найти похожие ветки
← →
Doctor (2002-07-16 13:27) [0]народ, как быть ?
надо сделать в отчете таблицу типа
название товара/сумма/кол-во/за период/до периода/на конец периода
вот в этом периоде и вся загвоздка.
по идее надо сделать выборку где where period и даты, но это получается 3 запроса, а в отчет в DataSet можно вставить тоько 1 ресурс, по 2-м другим отчет не строится!!!!
делать union-тогда будет набор, из которого я не выберу информацию
и left join не катит, т.к. все данные из 1 таблицы
КТО ЗНАЕТ ПОМОГИТЕ, plz !!!!
← →
Johnmen (2002-07-16 13:32) [1]Добрый Доктор, это неизлечимо ! :)))) Шучу.......:))))))
Ничто не мешает джойнить таблицу саму с собой. (Если это поможет...)
← →
Doctor (2002-07-16 13:39) [2]мне надо вывод 3 одинаковых поля для разных дат (периодов)
из за этого ругается компилятор, что не может раздуплить, где какое поле
← →
Johnmen (2002-07-16 13:42) [3]укажи алиасы
← →
Doctor (2002-07-16 13:45) [4]ну смотри, даже если будет название_табл.назв_поля
все равно то данные из 1 таблицы !!!
и будет матюкаться.........
← →
Johnmen (2002-07-16 13:48) [5]Приведи текст запроса и текст матюков...
← →
Doctor (2002-07-16 13:50) [6]вот 1 запрос
select
optionid,sum(SUMMA),count(dogovorid) from DOGOVOR
where zayavl_data <= :kon
group by optionId
2
select
optionid,sum(SUMMA),count(dogovorid) from DOGOVOR
where zayavl_data <= :nach
group by optionId
3
select
optionid,sum(SUMMA),count(dogovorid) from DOGOVOR
where zayavl_data between :nach and :kon
group by optionId
как объеденить все 3, если знаешь напиши
← →
Johnmen (2002-07-16 13:59) [7]Вариант такой.
Добавляем в каждый запрос поле XXX :
в первом - 1 AS XXX; в 2 - 2 AS XXX; 3 - 3 AS XXX
Объединяем запросы UNION ALL
В отчете делаем группировку по полю XXX
Если же надо в горизонте - то можно через виртуальную таблицу...
← →
Doctor (2002-07-16 14:03) [8]а как через виртуальную таблицу, впервые слышу об этом
(надо в "горизонте")
← →
ПИТОН (2002-07-16 14:03) [9]Попробуй юнионом объединить эти три таблицы в локальную так
select
optionid,sum(SUMMA) as summa ,count(dogovorid) as now, 0 as befor, 0 as after
from DOGOVOR
where zayavl_data <= :kon
group by optionId
Union all
select
optionid,0,0,count(dogovorid),0 from DOGOVOR
where zayavl_data <= :nach
group by optionId
union all
select
optionid,0,count(dogovorid),0,0 from DOGOVOR
where zayavl_data between :nach and :kon
group by optionId
а потом их просуммировать:
select optionid, sum(sum), sum(now), sum(befor), sum(after)
from localtable
group by optionid
← →
roottim (2002-07-16 14:05) [10]а в ИБ поддерживается ?
select
field,..,
(select field from...)
field
from mtable
where...
хотя не очень понятен вид отчета... хотябы пример
← →
Sergey13 (2002-07-16 14:07) [11]2Doctor (16.07.02 13:27)
Я такие весчи делал через CAST, т.е. типа
select name,cast((select sum from table1 t2 where ... ) as number) as pole_name
from table1 t1
where ...
За синтаксис не ручаюсь, давно я IB активно не юзал. Работало тормозно, и наверное коряво. Но работало. Для отчета пойдет.
← →
Alexandr (2002-07-16 14:07) [12]поддерживается.
← →
Johnmen (2002-07-16 14:08) [13]UNION"ами получаешь вертикально.
Есть такой очень неплохой компонент RxMemoryData из библ. RxLib. Это вирт. таблица.
← →
Doctor (2002-07-16 14:15) [14]может тогда и подскажешь, где свачать rx,
а то я скачал откуда-то и при компиляции выдается ошибка
file not found "Gauges.dcu"
а компоненты действительно рулезные , у меня когда то стояла их старая версия.......
← →
Johnmen (2002-07-16 14:26) [15]http://www.delphiplus.org
http://www.delphiplus.spils.lv
http://www.torry.net - сделай поиск
← →
Alexandr (2002-07-16 14:30) [16]насколько я припоминаю сейчас две верки создания RxLIb
одна на sourceforge
другая есть на www.demo.ru
только в них есть поддержка Delphi6
Какую из них выбрать - решать тебе...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.08.05;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.005 c