Требуется перекрестный запрос SQL 2000

Я уже искал это в Google


 I have a Table with following structure in SQL 2000

 ID ContactName Designation
 1  A           CEO
 2  B           ABC
 3  C           DEF
 4  D           GHI

Мне нужен вывод следующим образом


ContactName1 Contactname2 ContactName3 ContactName4
 A CEO        B ABC         C DEF         D GHI

Какие-либо предложения ?

Я полагаю, это то же самое, что и stackoverflow.com/questions/312861/pivot-using-sql-server-20‌ 00

John MacIntyre 14.01.2009 15:22
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
1
1 701
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Вам нужно использовать Сводная таблица

У меня есть база данных в SQL 2000

Sandhurst 14.01.2009 15:15

Разве эта ссылка не относится к SQL Server 2000?

cmsjr 14.01.2009 15:18

В моей схеме таблицы есть столбец varchar, а в примере, показанном в ссылке, есть столбцы int .. можно понять

Sandhurst 14.01.2009 15:22

Список обозначений фиксированный или произвольный?

cmsjr 14.01.2009 15:39

Это должно работать и с 2000 - wg. без PIVOT

http://www.sqlteam.com/item.asp?ItemID=2955

Еще одна процедура SQL Cross Tab http://johnmacintyre.ca/codespct.asp

Ответ принят как подходящий

Мне приходит в голову, что многие примеры относятся к запросам с перекрестными таблицами, включающим агрегирование, в котором, похоже, нет необходимости. Хотя я не обязательно одобряю Dynamic SQL, приведенное ниже должно дать вам желаемые результаты.

Create table #Contacts (id int)
Declare @ContactTypes int
Declare @CAD varchar(100)
Declare @I int
Declare @sql nvarchar(4000)
Set @i = 1
Select @ContactTypes =   
Sum(sub.Types) 
from ( Select Count(1) as Types from contacts
group by ContactName, Designation) as sub
Print @ContactTypes
While @i <= @ContactTypes
Begin
    set @sql = 'alter table #Contacts Add  ContactName' + 
    Cast(@I as varchar(10)) + ' varchar(100)'
    exec sp_executesql @sql
    Set @I = @i + 1
End
Insert into #Contacts (id) values (1)
Set @i = 1
Declare crsPivot  cursor 
for Select ContactName + ' ' + Designation
from contacts
open crsPivot
Fetch next from crsPivot into @CAD
While (@@Fetch_Status = 0)
Begin   
    Set @sql = 'Update  #Contacts  set ContactName' 
    + Cast(@I as varchar(10)) +' = ' + quotename(@CAD,'''')
    exec sp_executesql @sql
    Set @i = @i + 1
    Fetch next from crsPivot into @CAD
End
close crsPivot
Deallocate crsPivot
select * From #Contacts

Большое спасибо, правда .. спасибо

Sandhurst 14.01.2009 16:41

Другие вопросы по теме