powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Запрос из таблицы с историческими значениями
12 сообщений из 12, страница 1 из 1
Запрос из таблицы с историческими значениями
    #35872499
Фотография Полковник Трофимов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос в клубе знатоков!

Данные (как бы история. в марте было а, в июне стало б...):
Код: plaintext
select  3  as month, 'a' as val union select  6 , 'b' union select  11 , 'a'

Что нужно получить:
month val3 a4 a5 a6 b7 b8 b9 b10 b11 a12 a

версия бд: ASA 7
...
Рейтинг: 0 / 0
Запрос из таблицы с историческими значениями
    #35872567
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полковник Трофимов пишет:

> select *3* as month, 'a' as val union select *6*, 'b' union select *11*, 'a'

> Что нужно получить:
> month val
> 3 a
> 4 a
> 5 a
> 6 b
> 7 b
> 8 b
> 9 b
> 10 b
> 11 a
> 12 a

Это невозможно получить на SQL.
SQL не умеет генерировать записи ниоткуда.
Вам придётся завести для этого таблицу с записью для каждого месяца,
или каждого месяца каждого года, или ещё для чего у вас там это нужно.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Запрос из таблицы с историческими значениями
    #35872789
rcryo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добавьте к вашему селекту
Код: plaintext
from dummy
...
Рейтинг: 0 / 0
Запрос из таблицы с историческими значениями
    #35872816
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rcryoдобавьте к вашему селекту
Код: plaintext
from dummy


Паржал, спасиба
...
Рейтинг: 0 / 0
Запрос из таблицы с историческими значениями
    #35873551
Yurk0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полковник Трофимов,

Ну... как то так:
автор(select top 1 month,val FROM "DBA"."TEST" order by month)
union
(SELECT a.month,a.val FROM "DBA"."TEST" as a join "DBA"."TEST" as b on a.month = b.month + 1 and a.val <> b.val)
...
Рейтинг: 0 / 0
Запрос из таблицы с историческими значениями
    #35873561
Yurk0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ой)).. я неправильно понял вопрос...
...
Рейтинг: 0 / 0
Запрос из таблицы с историческими значениями
    #35874229
iLLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть замечательная функция dbo.rowgenerator, она понаделает записей. С использованием перемножения таблиц и условия where можно получить нужное кол-во строк.

Теперь по поводу сути вопроса. Такую выборку нужно делать при помощи ХП. Внутри временная табличка, курсор, внутри курсора добавление нужного кол-ва записей в времянку. И возврат полученной таблицы.
...
Рейтинг: 0 / 0
Запрос из таблицы с историческими значениями
    #35874645
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivЭто невозможно получить на SQL.Правда? :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select row_num as month, 'a' as val
from RowGenerator
where row_num>= 3  and row_num<= 6 
union
select row_num as month, 'b' as val
from RowGenerator
where row_num>= 6  and row_num<= 11 
union
select row_num as month, 'a' as val
from RowGenerator
where row_num>= 11  and row_num<= 12 
order by month
Или еще короче:
Код: plaintext
1.
2.
3.
select row_num as month, (if row_num between  6  and  10  then 'b' else 'a' endif) as val
from RowGenerator
where row_num>= 3  and row_num<= 12 
order by month
...
Рейтинг: 0 / 0
Запрос из таблицы с историческими значениями
    #35874777
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну.. а если месяцы, за которые есть данные заранее не известны (а на практике так и будет), то все-равно писать ХП.
...
Рейтинг: 0 / 0
Запрос из таблицы с историческими значениями
    #35874881
Сергей08
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну если...
вообше то...
то MasterZiv прав
это уже не SQL
...
Рейтинг: 0 / 0
Запрос из таблицы с историческими значениями
    #35875284
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей08ну если...
вообше то...
то MasterZiv прав
это уже не SQLПочему это вдруг не SQL? Самый настоящий SQL причем даже без расширений WatcomSQL.
Вот второй пример, с if в колонке, это уже действительно WatcomSQL будет.
Другое дело что волшебная таблица RowGenerator есть не во всех базах данных, но в SA она есть. А Полковник Трофимов именно про нее спрашивал.
...
Рейтинг: 0 / 0
Запрос из таблицы с историческими значениями
    #35876152
Сергей08
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я хотел сказать, что фраза:
Код: plaintext
SQL не умеет генерировать записи ниоткуда.
есть очень правильная фраза и гораздо проще сказать
в каких базах данных есть 'волшебная таблица RowGenerator '
Особенно если откинуть последние версии
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Запрос из таблицы с историческими значениями
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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