Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Запрос по неизвестному столбцу / 25 сообщений из 42, страница 1 из 2
25.04.2003, 12:51
    #32148773
Aphina
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по неизвестному столбцу
Есть таблица. В ней первых да столбца - известны, остальные - добавляются каждый день и содержат в своем названии дату: TEST(id number, name char, g11_04_03, g12_04_03, и пр.)
Необходимо сделать запрос, который возвращал бы значения одного из столбцов с датой в названии.
Я пишу:
Код: plaintext
1.
2.
select 'g'||to_char(sysdate- 2 ,'DD_MM_YY') as moja_data
from TEST

Возвращает мне, разумеется, g23_04_03 в каждой строке.
Подскажите, если знаете.
...
Рейтинг: 0 / 0
25.04.2003, 12:57
    #32148779
Пузырек
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по неизвестному столбцу
А таблицу перепроектировать не думали? Может что-то в университете не так? )
...
Рейтинг: 0 / 0
25.04.2003, 12:59
    #32148780
Aphina
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по неизвестному столбцу
Тогда она разрастется до размеров вселенской катастрофы (((

ЗЫ. Но уже думаем...
...
Рейтинг: 0 / 0
25.04.2003, 12:59
    #32148781
no name
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по неизвестному столбцу
Класс :))
а зачем так?
...
Рейтинг: 0 / 0
25.04.2003, 13:04
    #32148786
Пузырек
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по неизвестному столбцу
А количество столбцов в Оракле разве не ограничено?
...
Рейтинг: 0 / 0
25.04.2003, 13:06
    #32148789
Aphina
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по неизвестному столбцу
Что зачем? Зачем вообще все это нужно? Начальство сказало что барсук - птица, значит полетит...

Я подсчитала. С другой структурой эта таблица за 10 дней станет размером 7500000 записей. Эээх...
...
Рейтинг: 0 / 0
25.04.2003, 13:11
    #32148799
no name
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по неизвестному столбцу
А если партиции пользовать, либо на худой конец новые таблы создавать?
...
Рейтинг: 0 / 0
25.04.2003, 13:11
    #32148801
Пузырек
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по неизвестному столбцу
ORA -01792 maximum number of column in table or view is 1000.

После 1000 ты что делать будешь?. Думать начнешь ?

Ты скажи какая у тебя задача. Народ подумает и придумает как сделать.
...
Рейтинг: 0 / 0
25.04.2003, 13:12
    #32148807
Violina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по неизвестному столбцу
Оригинальное решение! А если так редизайнить?


Код: plaintext
1.
2.
3.
4.
5.
6.
TEST(id number, name char)

HISTORY(test_id, date, text) - /test_id FK/

а потом обращаться 

select text from HISTORY where date=...


ну итп.?

Не уже ли, это решение хуже чем добавление столбцов каждый день? Вообще вроде добавление столбцов когда уже много данных вроде как "портит" базу помаленьку.
...
Рейтинг: 0 / 0
25.04.2003, 13:13
    #32148808
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по неизвестному столбцу
Во-первых, тут всяко через динамический SQL придется идти. Вопрос- в каком виде надо получить данные: refcursor, resultset, еще как? А 7500000 записей- подумаешь, а сколько из них отбираться будут?
...
Рейтинг: 0 / 0
25.04.2003, 13:14
    #32148810
no name
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по неизвестному столбцу
Ну если очень хочется то нужно почитать доку про NATIVE DYNAMIC SQL
...
Рейтинг: 0 / 0
25.04.2003, 13:18
    #32148819
Aphina
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по неизвестному столбцу
У меня нет доки по NATIVE DYNAMIC SQL и не предвидится (

Отбирать буду из 7,5 млн записей примерно в пять раз меньше. (может больше, чем в пять раз меньше)

А про кол-во столбцов спасибо, не знала. Вывалилась бы ошибка на самом интересном месте )))
...
Рейтинг: 0 / 0
25.04.2003, 13:23
    #32148829
Пузырек
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по неизвестному столбцу
Aphina . Если ты хочешь грамотно воспользоваться умом и опытом других людей, то все-таки объясни задачу!

Ты почему это упорно не хочешь делать
...
Рейтинг: 0 / 0
25.04.2003, 13:24
    #32148831
Aphina
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по неизвестному столбцу
В одной табличке данные каждый день разные. И нач-во хочет видеть отчет по этим данным за любой день, который захочет.
Поэтому я записываю эти данные в табличку, для этого добавляя каждый день по столбцу с датой в названии.
Конечным результатом должен быть запрос по этой табличке, выводящий данные за дату.
Есть еще вариант - считать это значение. Брать несколько таблиц и считать, сколько убыло и сколько прибыло на определенную дату. Долго.
...
Рейтинг: 0 / 0
25.04.2003, 13:30
    #32148842
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по неизвестному столбцу
1. ИМХО можно подумать о партициях.
2. Materialized View c Fast Refresh - в конце дня единожды обновляется. Это если получится.
...
Рейтинг: 0 / 0
25.04.2003, 13:30
    #32148843
AI
AI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по неизвестному столбцу
Значит, отменили where в запросах начальственным приказом...
...
Рейтинг: 0 / 0
25.04.2003, 13:31
    #32148846
Scott Tiger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по неизвестному столбцу
2Aphina: Ничего не долго. Индекс тебя спасёт. Секционирование, опять же. Изменять структуру таблицы "на лету" категорически не надо. Иначе - мучительная смерть (см. /topic/29628, подробности можно адаптировать в зависимости от пола)
...
Рейтинг: 0 / 0
25.04.2003, 13:32
    #32148848
Angel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по неизвестному столбцу
А бывает и наоборот:
В таблице хранятся данные о 10 сотрудниках: 10 столбцов, 20 строк. Вот придет еще один, надо будет столбец добавлять, а как иначе ?

2 Aphina

Может все же поделишься структурой данных и требуемыми отчетами.
...
Рейтинг: 0 / 0
25.04.2003, 13:32
    #32148849
no name
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по неизвестному столбцу
Тогда вам нужно почитать фундаментальную литературу - про методы декомпозиции, типа метод ER-диаграмм. Ваша таблица похожа на универсальное отношение
...
Рейтинг: 0 / 0
25.04.2003, 13:38
    #32148859
Пузырек
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по неизвестному столбцу
Ты:В одной табличке данные каждый день разные.
Я: ну и добавь туда поле SYS_DATE
и получиться что у тебя и данные всегда разные. И история есть
select *
from TEST
where SYS_DATE = to_date('01/01/2002','dd/mm/yyy')
...
Рейтинг: 0 / 0
25.04.2003, 13:40
    #32148866
Aphina
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по неизвестному столбцу
Абалдеть...
Киньте наконец ссылку, где почитать про NATIVE DYNAMIC SQL и "методы декомпозиции"

Задача.
Есть в магазине большое (50 тыс шт.) кол-во единиц продукции. По каждому из них есть в табличке остатков своя цифирька - текущий остаток на данный момент времени. Эта цифра меняется, когда приходят накладные (то прибавляем), когда возвращается товар поставщику (тогда вычитаем), когда удалось продать (вычитаем) и когда покупатель это вернул (снова прибавляем). И получем эту цифирьку. Для того, чтоб узнать циыирьку на какое-нить давнишнее число нужно прибавить и отнять все эти документы, начиная с текущей даты по заданную. Запросом - долго... Т.к. это только часть здорового запроса, а таких должно быть два (остаток на начало и на конец заданного периода), то время еще увеличивается в разы.

Ну, УМЫ, что подскажете? )
...
Рейтинг: 0 / 0
25.04.2003, 13:42
    #32148869
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по неизвестному столбцу
...
Рейтинг: 0 / 0
25.04.2003, 13:43
    #32148870
Aphina
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по неизвестному столбцу
1. Да, кстати, таблицы МЕНЯТЬ я не имею права, не мои они. Хоть и могу поменять, и руки чешутся.

2. Разработчики всей этой красоты, по которой нужно делать отчет, сделали в самых больших таблицах индексы по текстовым полям... Чего то я в этой жизни явно не понимаю...
...
Рейтинг: 0 / 0
25.04.2003, 13:48
    #32148879
Пузырек
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по неизвестному столбцу
Задача твоя довольна стандартная. Пример такой же задачи - остаток по счету клиента.

Есть еще к тебе пару вопросов.

Возможно ли обновление этого остатка с нескольких рабочих мест?
...
Рейтинг: 0 / 0
25.04.2003, 13:49
    #32148881
Angel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по неизвестному столбцу
Решение в лоб.
Абстрактно таблицы:
Документ (..., дата, ид_товара, знак, кол-во, ...)
Остаток(ид_товара, дата, кол-во)

Соответственно, в таблицу документов вставляются документы. По триггерам на вставку, обновление, удаление обновляются остатки в таблице остатков.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Запрос по неизвестному столбцу / 25 сообщений из 42, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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