powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / помогите с хп
16 сообщений из 16, страница 1 из 1
помогите с хп
    #38901028
FBNoobik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть таблица дата, имя, количество
Код: sql
1.
2.
3.
4.
5.
CREATE TABLE TABLE1 (
    DATAN   DATE NOT NULL,
    NAME    VARCHAR(30) NOT NULL,
    AMOUNT  NUMERIC(18,3) DEFAULT 0
);



работа со статистикой по годам, месяцам, дням с помощью запроса в общем виде -
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
select
   extract (year from table1.datan) as Y,
   extract(month from table1.datan) as M,
   extract(day from table1.datan) as D,
    table1.name,
    sum( table1.amount ) sum_of_amount
from table1
group by Y, M, D, table1.name



уникальных имен (NAME) в таблице немного: 4-6 (вася, петя, антон ...)
хотелось бы с помощью хп динамически создать запрос с полями вася, петя, антон (по distinct name from table1)
и строками суммы amount по месяцам, например.
Код: sql
1.
2.
3.
4.
|period|вася|петя| антон|...
-------------------------------
|2012/1|sum|sum|sum|sum
|2012/2|sum|sum|sum|sum



Помогите плиз.
Спасибо!!!
...
Рейтинг: 0 / 0
помогите с хп
    #38901033
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FBNoobikс помощью хп динамически создать запрособлом.
FBNoobikуникальных имен (NAME) в таблице немного: 4-6 (вася, петя, антон ...)формируй на клиенте, хп тут как корове седло.

Оператор case в зубы и вперед.
...
Рейтинг: 0 / 0
помогите с хп
    #38901054
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Fbnoobik!
You wrote on 11 марта 2015 г. 12:22:01:

Fbnoobik> хотелось бы с помощью хп динамически создать запрос
> с полями вася, петя, антон
ну предположим создашь ты в ХП текст такого запроса,
дальше что ты будешь с ним делать?

зы: курсорных переменных в FB нету.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
помогите с хп
    #38901105
FBNoobik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan_PisarevskyОператор case в зубы и вперед.

Код: sql
1.
2.
3.
4.
5.
6.
7.
select
 table1.datan,
 sum (case table1.name WHEN 'вася' THEN table1.amount ELSE 0 END) as vasya,
 sum (case table1.name WHEN 'петя' THEN table1.amount ELSE 0 END) as petya
 ...
 from table1
 group by table1.datan



Так?

получается нельзя набрать таких sum case-ов по distinct name from table1 и сделать селективную хп?
...
Рейтинг: 0 / 0
помогите с хп
    #38901133
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Fbnoobik!
You wrote on 11 марта 2015 г. 13:01:46:

Fbnoobik> получается нельзя набрать таких sum case-ов по distinct name from table1
> и сделать селективную хп?
набор выходных параметров(полей) селективной процедуры определяется
при её создании или альтере.
динамически изменить его "изнутри" нельзя.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
помогите с хп
    #38901166
FBNoobik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МимопроходящийHello, Fbnoobik!
You wrote on 11 марта 2015 г. 13:01:46:

Fbnoobik> получается нельзя набрать таких sum case-ов по distinct name from table1
> и сделать селективную хп?
набор выходных параметров(полей) селективной процедуры определяется
при её создании или альтере.
динамически изменить его "изнутри" нельзя.


Да, да... помутнение сознания... сорри )))
...
Рейтинг: 0 / 0
помогите с хп
    #38901196
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийдинамически изменить его "изнутри" нельзя.
Зато альтернативно одарённые люди могут помаяться фигнёй со сваливанием кучи значений в
одно поле в формате какого-нибудь XML, JSON или даже CSV.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
помогите с хп
    #38901213
FBNoobik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovЗато альтернативно одарённые люди могут помаяться фигнёй со сваливанием кучи значений в
одно поле в формате какого-нибудь XML, JSON или даже CSV.

Хммм.. а это интересно!!
...
Рейтинг: 0 / 0
помогите с хп
    #38901260
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

подсказал блин. Сейчас пойдёт XML в ХП собирать
...
Рейтинг: 0 / 0
помогите с хп
    #38901274
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Симонов Денис!
You wrote on 11 марта 2015 г. 13:45:19:

Симонов Денис> подсказал блин. Сейчас пойдёт XML в ХП собирать
и это хорошо.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
помогите с хп
    #38901659
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
|period|name|sum|
-------------------------------
|2012/1|вася|sum
|2012/1|петя|sum
|2012/1|коля|sum
|2012/2|вася|sum
|2012/2|петя|sum
|2012/2|коля|sum


не?
...
Рейтинг: 0 / 0
помогите с хп
    #38901830
FBNoobik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Fr0sT-Brutalне?
не! а:
FBNoobik
Код: sql
1.
2.
3.
4.
|period|вася|петя| антон|...
-------------------------------
|2012/1|sum|sum|sum|sum
|2012/2|sum|sum|sum|sum



и

FBNoobik
Код: sql
1.
2.
3.
4.
5.
6.
7.
select
 table1.datan,
 sum (case table1.name WHEN 'вася' THEN table1.amount ELSE 0 END) as vasya,
 sum (case table1.name WHEN 'петя' THEN table1.amount ELSE 0 END) as petya
 ...
 from table1
 group by table1.datan
...
Рейтинг: 0 / 0
помогите с хп
    #38903485
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FBNoobikне! а:

И? Те же данные, только развернутые в длину. А запрос конечно придется менять.
Развертывать НД вширь динамически - не лучшая идея. Либо жестко зафиксируй, например, 10 столбцов чуваков, не используемые забивай null-ами
...
Рейтинг: 0 / 0
помогите с хп
    #38903792
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-BrutalЛибо жестко зафиксируй, например, 10 столбцов чуваков, не используемые забивай null-амипри добавлении 11-го гарантирована веселуха.
...
Рейтинг: 0 / 0
помогите с хп
    #38903948
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FBNoobik
Код: sql
1.
2.
3.
4.
|period|вася|петя| антон|...
-------------------------------
|2012/1|sum|sum|sum|sum
|2012/2|sum|sum|sum|sum


Не стоит усложнять себе жизнь на пустом месте. Сложности и так, сами, найдутся.
Fr0sT-Brutal
Код: sql
1.
2.
3.
4.
|period|name|sum|
-------------------------------
|2012/1|вася|sum
|2012/1|петя|sum


Вот это общепонятный, простой и удобный вариант. А на клиенте разворачивай матрицу уже как хочешь.
...
Рейтинг: 0 / 0
помогите с хп
    #38911500
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan_Pisarevsky,

а у него и так и так будет веселуха. Я основывался на
авторуникальных имен (NAME) в таблице немного: 4-6 (вася, петя, антон ...)
соответственно 10-и хватит на всех.
Ну это если все же охота заморочиться.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / помогите с хп
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]