Форум: "Базы";
Текущий архив: 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
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c