Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.08;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.01 c
1-24027
ZEE
2002-07-28 17:02
2002.08.08
Таблица в Word.Application


3-23955
dzmitry
2002-07-02 10:23
2002.08.08
Btrieve for Linux


14-24235
Igor_thief
2002-07-15 12:50
2002.08.08
Скины!


3-23960
madmike
2002-07-19 03:20
2002.08.08
Помогите оптимизировать запрос, плз.


1-24071
lpp
2002-07-26 12:25
2002.08.08
InstallShield Express for Delphi 5