Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-13681
иван
2002-07-23 19:17
2002.08.05
Работа с файлом


1-13639
ilg
2002-07-22 16:42
2002.08.05
Изменение переменной


6-13748
GM_
2002-05-24 10:58
2002.08.05
Про TClientSocket


14-13765
AL2002
2002-07-08 19:17
2002.08.05
Можно ли защитить свою прогу?


1-13607
Filat
2002-07-24 16:22
2002.08.05
Сканирование каталогов In & Out + перемещение файлов по ф6?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский