Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.009 c
1-23994
Brand
2002-07-28 00:29
2002.08.08
Работа с реестром


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


3-23937
lak_b
2002-07-18 16:15
2002.08.08
IB & Delphi


1-23970
Lamer86
2002-07-26 19:44
2002.08.08
Как скопировать Exe файл приложения


3-23945
AlexSam
2002-07-16 09:46
2002.08.08
Курсоры в IB6




   Наверх