Nghiêm túc? 14.000 cột trong một chế độ xem? Bạn có một vấn đề nghiêm trọng về thiết kế ở đây. Tuy nhiên, nếu bạn muốn bắt đầu, hãy thử truy vấn tổng hợp động này. Nó hoạt động với dữ liệu hạn chế mà bạn đã cung cấp:
DECLARE @ColumnList VARCHAR (MAX)
DECLARE @SQL VARCHAR(MAX)
-- Create a list of distinct Item IDs which will become column headers
SELECT @ColumnList = COALESCE(@ColumnList + ', ','') + 'ItemID' + CAST(I.ItemID AS VARCHAR(12)) FROM (SELECT DISTINCT ItemID FROM Item) I
SET @SQL = '
SELECT
ShopID, ' + @ColumnList + '
FROM
(
SELECT
s.ShopID,
ItemID = ''ItemID'' + Cast(i.ItemID as varchar(12)),
sim.ItemCost
FROM
dbo.Shop_Item_Mapping AS sim
JOIN dbo.Shop AS s ON sim.ShopID = s.ShopID
JOIN dbo.Item AS i ON SIM.ItemID = i.ItemID
) T
PIVOT
(
MIN(ItemCost)
FOR T.ItemID IN (' + @ColumnList + ')
) AS PVT'
exec (@SQL)
Đã chỉnh sửa tên trường theo câu hỏi đã cập nhật.