데이터를 표시하려면 image과 같습니다.
이것은 n^n 결과입니다. 여기 V1, V2 & V3가 열 이름으로 표시됩니다. SQL 서버에서 조합 n^n을 만드는 방법
도와주세요. 미리 감사드립니다.
데이터를 표시하려면 image과 같습니다.
이것은 n^n 결과입니다. 여기 V1, V2 & V3가 열 이름으로 표시됩니다. SQL 서버에서 조합 n^n을 만드는 방법
도와주세요. 미리 감사드립니다.
이 시도 :
-- 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)
Razvan 보낸
매우 감사합니다 ... –
@AkhileshKumarGupta 솔루션을 이해하고 추가 요구 사항을 통합하기 위해이 솔루션을 적용 해보십시오. StackOverflow는 모든 작업을 수행 할 보드가 아닙니다. –
다시이 솔루션에 대해 ..... 감사합니다. –
당신이'Vendors'을 선회 한 후 제품에 대한 'CROSS JOIN'을 수행 할 것 같습니다. – Dai
예. 그러나 두 번째 테이블 열 값은 이미지에 표시되는 것처럼 한 열에 쉼표로 삽입합니다. –
향후에 404가 될 링크를 사용하지 마십시오. –