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

Вниз

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

 
maxon   (2002-07-15 10:31) [0]

Как мне сфомировать запрос из одного столбца одной таблицы, чтобы результатом были три столбца, т.е. у меня фактически два столбца, в одном дата в другом значения, мне нужно чтобы в результате запроса получились три столбца - 1 декада, 2,3. Спасибо.


 
Johnmen   (2002-07-15 10:38) [1]

????????????? Непонятно, однако...



 
zx   (2002-07-15 10:43) [2]

DATEPART
Потроши дату и определяй декаду


 
maxon   (2002-07-15 11:03) [3]

потрошить дату не проблема, дело в том, что если в запросе указать "select name,data,sum(value) from "таблица" where data>="2001.01.01 ans data<="2002.01.01" group by data", то
результатом будет:
name data value
misha 01.01.2002 123123
sasha 02.01.2002 34234 и т.д, а вот как сделать запрос, чтобы получилось на подобе:
name 1 декада 2 декада 3 декада
misha 3223 23423 32432
sasha 321 23 34


 
ПИТОН   (2002-07-15 11:18) [4]

Сделай 3 запроса по каждой из декад и объедини Union-ом


 
Johnmen   (2002-07-15 11:39) [5]

Типа
select name,data,(select ... where связка),(select ... where связка),(select ... where связка) from "таблица" where data>="2001.01.01 ans data<="2002.01.01" group by name,data



 
maxon   (2002-07-15 12:24) [6]

эта конструкция для SQL 2000?, SQL 7.0 пишет "Only one expression can be specified in the select list when the subquery is not introduced with EXISTS", может есть другие пути?


 
Johnmen   (2002-07-15 12:46) [7]

Если такая конструкция не катит - то за один запрос в горизантальном срезе не получится.


 
zx   (2002-07-16 15:06) [8]

Создай временную таблицу.
И обновляй курсором.


 
AlexGreG   (2002-07-16 15:44) [9]

Добавь поле "Декада", при вводе данных определяй декаду и сохраняй в этом поле.

затем, если тебе нужно в интерфейсе отобразить такую таблицу, то используй вычисляемые поля, анализируя поле "декада" заполняй соответствующую колонку.

Вот.


 
AlexSV   (2002-07-16 19:17) [10]

Похоже тебе надо что-то такого типа:

select d1_name, d1_value, d2_value, d3_value
from (select name as d1_name, sum(value) as d1_value
from table
where data>="2001.01.01 ans data<"2001.04.01
group by name) d1_table
join (select name as d2_name, sum(value) as d2_value
from table
where data>="2001.04.01 ans data<"2001.07.01
group by name) d2_table
on d2_table.d2_name = d1_table.d1_name
join (select name as d3_name, sum(value) as d3_value
from table
where data>="2001.07.01 ans data<"2001.10.01
group by name) d3_table
on d3_table.d3_name = d1_table.d1_name

Писал прямо здесь, поэтому если что, извини.
Пытался передать идею.



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

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

Наверх





Память: 0.46 MB
Время: 0.007 c
4-24259
Danger
2002-05-31 00:17
2002.08.08
Как установить дату


14-24201
[nex] aka Counterfeiter
2002-07-12 01:15
2002.08.08
Internationalisation


14-24195
RV
2002-07-12 11:30
2002.08.08
в продолжение Когда можно работать ?


1-24038
zetta
2002-07-25 14:51
2002.08.08
а можно ли так:


1-24023
KPY
2002-07-29 05:38
2002.08.08
Как остановить программу и посмотреть значение переменных





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский