Форум: "Начинающим";
Текущий архив: 2008.03.30;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.045 c