sql - 使用 SQL 构建具有动态列标题的电子表格
问题描述
我是 SQL 新手,并且自学了我目前所知道的知识。是否可以设置一组动态列标题?例如下面我在一个数据表(pic704current)的电子表格列AE中,我想要做的是重新创建作为辅助表一部分的FO(Cataloginfo.catalog,基于Cataloginfo.mediaid ='
另外,我需要这样做,因为目录经常更改并且手动输入它们会破坏自动生成此报告的目的。
更新:我已经更新了代码以反映我一直在搞砸的事情。显然,我已经评论了一些我需要稍后再处理的部分,但到目前为止,我仍然无法让它运行。我感谢您的帮助并朝着正确的方向前进!
我正在寻找关于如何做到这一点的想法,或者在 SQL 中是否有可能。任何其他细节或澄清只是让我知道。谢谢!
SELECT a.ARTICLE
,a.ARTICLENAME
,a.RD
,a.SFC
,a.ITEMMERCH as Merch
,a.Offer
,a.WPFROM
--,CASE WHEN THEN "Yes" else "no" END AS [Unbuilt]
--,Case when b.Brand = 'Seventh Avenue' then b.catalog
FROM Lago_CID_Master a INNER JOIN CatalogInfo b ON (a.Offer = b.Catalog) AND (a.OfferYear = b.MailYear) JOIN PIC704Current c ON (a.Offer = c.CatID) and (a.OfferYear = c.year)
PIVOT
(
Lago_CID_Master.wpfrom(cataloginfo.catalog)
FOR
[cataloginfo.catalog]
IN (cataloginfo.mediaid('cat catalog'))
AS q )
WHERE b.Brand= 'Seventh Avenue'
--and b.mediaid = ('CAT Catalog')
and a.year=2020
and b.seasonid = 'F20'
--ORDER by a.ARTICLE;
解决方案
您必须执行以下操作。我没有对此进行测试,因为我没有可使用的数据。添加一些数据来修改查询。
DECLARE @SQL VARCHAR(MAX) = 'SELECT *
FROM (SELECT a.packnum,
a.Description,
a.RD,
a.SFC,
a.TwoDigitMerchCode as Merch
FROM PIC704Current a
INNER JOIN CatalogInfo b
ON a.CatID = b.Catalog
AND a.Year = b.MailYear)
WHERE b.Brand = ''Seventh Avenue''
AND b.MediaId = ''cat catalog''
AND a.[year] = 2020
AND b.seasonid = ''F20'') A
PIVOT (max([Value]) FOR [mediaid] IN (' + STUFF((SELECT ',' + QUOTENAME(mediaid) FROM (SELECT mediaid FROM Cataloginfo ORDER BY mediaid) A FOR XML PATH('')),1,1,'') + ') ) p'
PRINT @SQL
EXEC(@SQL);
推荐阅读
- c# - 针对错误请求的 .NET Core WepApi 模式
- azureml - 在模型部署期间包含其他文件(第 2 部分)
- unit-testing - 测试引发错误的异步函数时未获得覆盖
- javascript - Express - Firebase - 检查未定义的 req.cookie.__session 而不抛出错误
- latex - Latex - 显示文本而不是图像的图像
- r - 将 NHL JSON 数据导入 R 并格式化
- java - Java (Silenium) - 导入语句完成但是方法不可见
- python - 你能计算 matplotlib 中文本注释的大小吗?
- scala - 如何从所有子文件夹中读取所有镶木地板文件
- sql - 从每日数据中提取季度利润