Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
14-70031
Sergey_
2002-03-13 13:39
2002.04.22
печать под досом на hp-1100


1-69847
kreont
2002-04-06 23:01
2002.04.22
object pascal


1-69769
kay
2002-04-09 22:15
2002.04.22
asm вставки


1-69806
MystiX
2002-04-09 18:32
2002.04.22
Help with mouse


6-69943
Brand
2002-01-28 21:16
2002.04.22
Непонятный момент с NMHTTP1.Post под WinXP





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский