Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.30;
Скачать: CL | DM;

Вниз

SQL с использованием цыклов и переменных   Найти похожие ветки 

 
DelphiN!   (2008-02-27 12:43) [0]

Необходимо написать SQL выводящий сравнение выручки по периодам.
Дан период в кол-ве дней(например: 5) и период составления отчета, например : 05.01.2008 - 01.02.2008

Результат SQL запроса должен выглядеть следующим образом :

PERIOD                        
05.01.2008 - 10.01.2008
10.01.2008 - 15.01.2008
...
SUMM
500 000
1 000 000
...
PROSHLIY_PERIOD
250 000
500 000
...
RAZNICA
-50%
50%
...

Жирным выделены имена столбцов, далее идут значения. В столбце PROSHLIY_PERIOD выводится выручка за прошлый период, тоесть для периода 05.01.2008 - 10.01.2008 прошлый период будет 01.01.2008 - 05.01.2008. В столбце RAZNICA выводится процентная разница между текущим и прошлым периодом.

Можно ли такое написать средствами SQL? Если да то как?

FireBird 1.5 Dialect 3


 
ANB   (2008-02-27 12:55) [1]

Написать можно.
На оракле быстро, для ФБ - не умею.


 
Johnmen ©   (2008-02-27 13:31) [2]

Опять ты со своим мутным вопросом...:(
Пиши хранимую процедуру, и в ней извращайся, как тебе надо.

ЗЫ
Рассчитывать, что за тебя её напишут, не стОит.


 
Правильный_Вася   (2008-02-27 13:34) [3]


> Опять ты со своим мутным вопросом...:(

только периоды уже не недельные, а пятидневные


 
Anatoly Podgoretsky ©   (2008-02-27 22:28) [4]

> Правильный_Вася  (27.02.2008 13:34:03)  [3]

Может доживем до однодневных.


 
korneley ©   (2008-02-27 22:43) [5]


> только периоды уже не недельные, а пятидневные

...

> Может доживем до однодневных.

А какая разница, если в SQL поставить  "BETWEEN"?


 
Правильный_Вася   (2008-02-27 22:55) [6]


> А какая разница

да скоро будет сравнение пересекающихся периодов


 
korneley ©   (2008-02-27 23:10) [7]


> да скоро будет сравнение пересекающихся периодов

А ни фига не страшно! (ну, если так по жизни кому-то надо). Два запроса с разными крайними датами ( и сохранением первого результата), плюс разница между ними. Это если на клиенте. А уж хранимой процедурой... Любые четыре даты входящими параметрами - любая "RAZNICA" Вопрос легитимности дат - на совести подающего.


 
Amoeba ©   (2008-02-27 23:23) [8]


> цыклов

Я плакалЪ!


 
korneley ©   (2008-02-27 23:27) [9]


> Amoeba ©   (27.02.08 23:23) [8]

Это от слова "цыкнуть". Ну, зубом, или ещё чем... :)


 
Amoeba ©   (2008-02-27 23:29) [10]

Цыган встал на цыпочки и сказал цыпленку цыц!

Смотрю и вижу - чем моложе писатель, тем больше у него проблем с орфографией.


 
Игорь Шевченко ©   (2008-02-28 00:02) [11]


> Смотрю и вижу - чем моложе писатель, тем больше у него проблем
> с орфографией.


Это не от возраста зависит


 
Amoeba ©   (2008-02-28 00:33) [12]


> Игорь Шевченко ©   (28.02.08 00:02) [11]
>
>
> > Смотрю и вижу - чем моложе писатель, тем больше у него
> проблем
> > с орфографией.
>
>
> Это не от возраста зависит
>

Но корреляция есть.


 
DelphiN!   (2008-02-28 05:31) [13]

Я не знаю как заполнять первый столбец, тоесть как прибавлять к какой-то переменной по 5 дней и каждый раз выводить ее значение


 
DelphiN!   (2008-02-28 05:44) [14]


> Johnmen ©   (27.02.08 13:31) [2]


А где именно ее писать? В IbExpert-e не нашел, наверное конечно плохо искал, но все-же где?

Или может подскажете литературу на русском где описывается синтаксис FireBird SQL и способы создания и использования хранимых процедур


 
DelphiN!   (2008-02-28 06:42) [15]

Нде писать процедуры нашел, написал пробную процедуру, на вкладке DDL процедуры в IbExpert-e появилось следующее :



SET TERM ^ ;

CREATE OR ALTER PROCEDURE LIST_STATES
returns (
   result integer)
as
begin
result = 5*5;
end^

SET TERM ; ^

GRANT EXECUTE ON PROCEDURE LIST_STATES TO SYSDBA;


Далее пытаюсь ее вызвать select result from LIST_STATES
В результате получаю значение NULL вместо 25. В чем дело?


 
DelphiN!   (2008-02-28 07:00) [16]

Разобрался, не поставил SUSPEND;
Спасибо всем, буду разбираться с процедурами ...


 
Amoeba ©   (2008-02-28 10:17) [17]


> DelphiN!   (28.02.08 05:44) [14]
>
>
> > Johnmen ©   (27.02.08 13:31) [2]
>
>
> А где именно ее писать? В IbExpert-e не нашел, наверное
> конечно плохо искал, но все-же где?
>
> Или может подскажете литературу на русском где описывается
> синтаксис FireBird SQL и способы создания и использования
> хранимых процедур
>

http://www.delphikingdom.com/asp/book.asp?bookID=219
http://www.delphikingdom.com/asp/book.asp?bookID=251


 
Anatoly Podgoretsky ©   (2008-02-28 15:05) [18]

> Игорь Шевченко  (28.02.2008 00:02:11)  [11]

От возраста, просто у некоторых возраст стабилизируется в раннем детстве.
Инфантильность, дебильность и прочие сть.


 
Anatoly Podgoretsky ©   (2008-02-28 15:06) [19]

> DelphiN!  (28.02.2008 05:31:13)  [13]

Ладно сжалимся, сложение (прибавлять) делается оператором плюс, а присвоение оператором две точки/равно



Страницы: 1 вся ветка

Текущий архив: 2008.03.30;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.104 c
2-1204541274
Matveih1
2008-03-03 13:47
2008.03.30
Как сделать столбец в StringGrid не видимым


3-1194552532
БарЛог
2007-11-08 23:08
2008.03.30
Помогите составить SQL-запрос


2-1204469338
Evil
2008-03-02 17:48
2008.03.30
Проблеммы с TMemoryStream в TStringList...


2-1204119039
kiberg
2008-02-27 16:30
2008.03.30
количество элементов в перечислении


15-1202849507
TStas
2008-02-12 23:51
2008.03.30
Как на Паскаль Скрипте прочитать в программу файл?