Форум: "Базы";
Текущий архив: 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.006 c