画像のようにデータが欲しいです。
これは n^n の結果です。ここでは、V1、V2、および V3 が列名として表示されます。
私を助けてください。前もって感謝します。
これを試して:
-- DROP TABLE Vendors, Products
CREATE TABLE Vendors (Vendor VARCHAR(10) PRIMARY KEY)
CREATE TABLE Products (Product VARCHAR(10) PRIMARY KEY)
GO
INSERT INTO dbo.Vendors VALUES ('V1'),('V2'),('V3')
INSERT INTO dbo.Products VALUES ('1'),('2'),('3')
DECLARE @SQL VARCHAR(8000)=(
SELECT 'SELECT '+SUBSTRING(CONVERT(VARCHAR(8000),(
SELECT ','+SUBSTRING(CONVERT(VARCHAR(8000),(
SELECT '+CASE WHEN P'+Product+'='''+Vendor+''' THEN '''+Product+''' ELSE '''' END'
FROM dbo.Products
FOR XML PATH(''), TYPE
)),2,8000)+' AS '+Vendor
FROM dbo.Vendors
FOR XML PATH(''),TYPE
)),2,8000)
+' FROM '+SUBSTRING(CONVERT(VARCHAR(8000),(
SELECT ',(VALUES '+SUBSTRING(CONVERT(VARCHAR(8000),(
SELECT ',('''+Vendor+''')'
FROM dbo.Vendors
FOR XML PATH (''), TYPE
)),2,8000)+') P'+Product+' (P'+Product+')'
FROM dbo.Products
FOR XML PATH(''), TYPE
)),2,8000)
)
EXEC(@SQL)
ラズヴァン