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




Вниз

Шахматка 2000 


KAA   (2002-03-27 17:48) [0]

Необходимо сделать шахматку, в частности получить либо выборку, либо временную таблицу, в которой кол-во столбцов будет зависеть от результата отдельной выборки, вообщем произвольное количество.
С помошью чего это можно сделать на MSSQL 2000? Задача вроде распространенная, наверняка уже есть стандартные наработки.



Fay   (2002-03-27 18:05) [1]

CREATE TABLE #Tmp(
[поле1] <его_тип_какойто>,
[поле2] <его_тип_какойто>,
)
Чё-то типа этого должно сработать
(Именно этод код не гонял)

DECLARE @S VARCHAR(n)
DECLARE C CURSOR LOCAL FOR
SELECT [какое-то поле откуда поля брать будешь]
FROM [какая-то таблица где это поле :)]
OPEN C
FETCH NEXT FROM C INTO @S
WHILE @FETCH_STATUS=0
BEGIN
EXEC("ALTER TABLE #Tmp ADD ["+@S+"]")
FETCH NEXT FROM C INTO @S
END
CLOSE C



Fay   (2002-03-27 18:07) [2]

В ALTER TABLE... славно было бы ещё тип данных добавить
Любят тут до таких мелочей всяко-разно ...



KAA   (2002-03-28 12:12) [3]

Этот вариант ничего не добавляет, хотя выводит что @S равно 2.

DECLARE @FETCH_STATUS int

CREATE TABLE #Tmp(
naim varchar(50),
fil1 int)

DECLARE @S VARCHAR(255)
DECLARE C CURSOR LOCAL FOR
SELECT convert(varchar(255),UIDTheme)
FROM bind_job_theme
WHERE UIDJob=12
OPEN C
FETCH NEXT FROM C INTO @S
WHILE @FETCH_STATUS=0
BEGIN
EXEC("ALTER TABLE #Tmp ADD ["+@S+"] int")
FETCH NEXT FROM C INTO @S
END
CLOSE C

print @S

SELECT * FROM #Tmp

DROP TABLE #Tmp


А этот вариант отрабатывает

CREATE TABLE #Tmp(
naim varchar(50),
fil1 int,
)

DECLARE @S VARCHAR(255)

SET @S="2"

EXEC("ALTER TABLE #Tmp ADD ["+@S+"] int")

SELECT * FROM #Tmp

DROP TABLE #Tmp

Я еще не работал с курсорами. Где могут быть грабли?



KAA   (2002-03-29 11:29) [4]

Кстати вопрос, а как заолнить новый столбец таблицы результатаи выборки из другой таблицы?



Delirium   (2002-03-29 12:50) [5]

То, что вы пытаетесь сделать наpывается OLAP. Применительно к MSSQL2000 - Analysis Services. Сие есть весьма сложная и интересная штуковина - читайте, изучайте и уже через пару недель задачи типа "шахматки" покажутся смешными.



Delirium   (2002-03-29 12:56) [6]

А вот и что почитать: http://www.olap.ru/basic/OLAP_intro1.asp




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




Наверх





Память: 0.72 MB
Время: 0.029 c
1-69813           voland0               2002-04-10 17:10  2002.04.22  
Очень нужно, помогите! Как


1-69872           Andre V.              2002-04-08 10:24  2002.04.22  
Создание своих VCL


3-69654           Hiks                  2002-03-29 08:48  2002.04.22  
---|Ветка была без названия|---


1-69828           kserg@ukr.net         2002-04-10 17:12  2002.04.22  
Можно ли в Паскале создавать макроподстановки?


1-69810           VictorT               2002-04-09 17:47  2002.04.22  
Консольное приложение