我有一个由三个字段组成的表[dTaxCode]
TaxCodeId, TaxCodeName ,DataAreaid
我需要在DataAreaId上使用过滤器转换的行和作为标头的TaxCodeId。
像:
SELECT TaxCodeId FROM dTaxCode where DataAreaId = 'xxx'
预期结果:
Tax1, Tax3, Tax4, ....
这是从excel调用的存储过程所需要的,以获取值作为列标题,作为回报将作为CUBEMEMBER公式的输入。
我试过了pivot,xml等等,没有运气。
BR / Jan
答案 0 :(得分:0)
来自您的问题架构
CREATE TABLE #dTaxCode (
TaxCodeId VARCHAR(20)
,TaxCodeName VARCHAR(20)
,DataAreaid VARCHAR(3)
)
INSERT INTO #dTaxCode
SELECT 'Tax1' ,'ABC' ,'XXX'
UNION ALL
SELECT 'Tax2' ,'BCD' ,'YYY'
UNION ALL
SELECT 'Tax3' ,'CDE' ,'XXX'
UNION ALL
SELECT 'Tax4'
,'DEF'
,'XXX'
查询将是
SELECT STUFF((
SELECT ',' + TaxCodeId
FROM #dTaxCode
WHERE DataAreaid = 'XXX'
FOR XML PATH('')
), 1, 1, '') AS TaxCodeId