我有一个表BPFinal,并有以下列
ID | Partners | Branch | Amount | Date
1001 | ABC | BO1 | 2,000 | 2020/11/30
1001 | ABC | BO2 | 1,500 | 2020/11/30
1002 | XYZ | BO1 | 4,000 | 2020/11/30
1001 | ABC | BO1 | 5,000 | 2020/10/31
我正在尝试编写sql来创建一个具有合作伙伴的动态头的数据透视表。一旦设置了日期,它将只显示每个分支的可用合作伙伴及其相应的数据。产出应如下:
日期: 2020/11/30
Branches | ABC | XYZ
BO1 | 2,000 | 4,000
BO2 | 1,500 | 0.00
日期: 2020/10/31
Branches | ABC
BO1 | 5,000
任何帮助编写SQL将不胜感激。谢谢
发布于 2020-11-28 03:30:03
您希望获得表的列名:如下所示:
SELECT `COLUMN_NAME`
FROM `INFORMATION_SCHEMA`.`COLUMNS`
WHERE `TABLE_SCHEMA`='db_name'
AND `TABLE_NAME`='table'
AND COLUMN_NAME IN (SELECT Partners FROM TABLE_NAME);
然后你想把名字组合成这样:
SELECT COLUMN_NAMES, `<column>`
FROM table
UNION
SELECT COLUMN_NAMES, `<column>`
FROM table
然后您需要指定日期:
SELECT COLUMN_NAMES
FROM table
WHERE DATE = 'DATEVALUE'
不要忘记对每个查询的结果进行连接,这有点复杂,但是如果您盯着它足够长的时间,您应该得到它。:)
https://stackoverflow.com/questions/65045788
复制相似问题