Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];

Вниз

Нужно написать запрос   Найти похожие ветки 

 
zorik ©   (2004-06-30 10:36) [0]

Есть таблица t1(date1 timestamp, a float, ...) и таблица t2(date1 timestamp, a float, ...). Нужно из таблицы t1 переместить в таблицу t2 записи за заданный месяц и вставить данные на первое число месяца в 00:00. Причем, если на первое число месяца в 00:00 даных в t1 нет - нужно взять предыдущие.
Например:
t1
date1            a
--------------------
20.05.1987 18:30 568
03.08.1999 05:00 123
05.02.2000 10:15 444
10.02.2000 11:20 657
28.02.2000 18:50 543
01.03.2000 22:30 547
03.03.2000 13:00 221

Задана дата: 02.2000
Должно получится:
t2
date1            a
--------------------
01.02.2000 00:00 123
05.02.2000 10:15 444
10.02.2000 11:20 657
28.02.2000 18:50 543

Полного решения не прошу. Меня интересует как взять одну последнюю запись (на начало месяца). Думаю что это надо оформлять в виде процедуры с параметрами месяц и год.
Спасибо!


 
Соловьев ©   (2004-06-30 10:38) [1]


>  Меня интересует как взять одну последнюю запись (на начало
> месяца).

order desc+ first


 
zorik ©   (2004-06-30 10:50) [2]

Можно и без desc и тогда last.
Но все дело в том что я хочу это оформить не в приложении, а в виде хранимой процедуры в самой базе, а из приложения просто вызвать ее, например Fill_t2(2000,2)!
Спасибо.


 
Курдль ©   (2004-06-30 11:04) [3]

Перемещать записи из одной таблицы в другую - есть противоречие концепции реляционных баз данных.


 
zorik ©   (2004-06-30 11:21) [4]

Согласен, но таблиц из которых перемещать будет 5-6 с разными данными и датами. Недостающие данные нужно заполнять предыдущими (с других таблиц), и расчет нужно проводить по таблице t2 для каждой записи а потом суммировать и групировать по разным критериям. Написать такой view думаю будет достаточно сложно.


 
Курдль ©   (2004-06-30 11:54) [5]


> Написать такой view думаю будет достаточно сложно.

А кто сказал про view? Надо правильно разместить данные, чтобы потом не танцевать танцы с бубнами вокруг "перемещать будет 5-6 с разными данными и датами".


 
zorik ©   (2004-06-30 12:19) [6]

Обясняю. Имеются данные изменений каких-то параметров. Таблица t1 - изменения групы параметров 1, t2 - групы параметров 2, t3 - групы параметров 3 и т. д. Они меняются в разное время. Могут вообще не менятся. Алгоритм расчета заключается в том что нужно разбить эти данные на интервалы в котором их состояние не изменялось и провести расчет по каждому интервалу. Размещать их в одной таблице? Думаю неверно! Можно хранимую процедуру испльзовать.
Пример.
t1
date1            a1   a2  ...
--------------------
20.05.1987 18:30 568
03.08.1999 05:00 123
05.02.2000 10:15 444
10.02.2000 11:20 657
28.02.2000 18:50 543
01.03.2000 22:30 547
03.03.2000 13:00 221

t2               b1, b2, ...
--------------------
03.02.1900 01.10 345
03.02.2000 10.25 111
12.08.2004 11.00 777

t3               c1, c2, ...
--------------------

Задана дата: 02.2000
Должно получится:
результ табл
date1            a1   b1  a2, b2, ...
-------------------------
01.02.2000 00:00 123  345
03.02.2000 10.25 123  111
05.02.2000 10:15 444  111
10.02.2000 11:20 657  111
28.02.2000 18:50 543  111



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

Форум: "Базы";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.032 c
14-1089056907
Marser
2004-07-05 23:48
2004.07.25
Календарь на отбор ЧМ-2006


6-1085565720
kalishenko
2004-05-26 14:02
2004.07.25
Пример UDP-сервера на API


14-1088901954
Soft
2004-07-04 04:45
2004.07.25
О быстром обучении.


4-1087009435
sashapont
2004-06-12 07:03
2004.07.25
Ярлык на рабочий стол


1-1089601040
rolex
2004-07-12 06:57
2004.07.25
Как на ListBox е сделать фоновый рисунок?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский