首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用java的MySQL枢轴表

使用java的MySQL枢轴表
EN

Stack Overflow用户
提问于 2020-11-28 02:17:19
回答 1查看 294关注 0票数 2

我有一个表BPFinal,并有以下列

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
Branches | ABC   | XYZ
BO1      | 2,000 | 4,000
BO2      | 1,500 | 0.00

日期: 2020/10/31

代码语言:javascript
运行
复制
Branches | ABC
BO1      | 5,000

任何帮助编写SQL将不胜感激。谢谢

EN

回答 1

Stack Overflow用户

发布于 2020-11-28 03:30:03

您希望获得表的列名:如下所示:

代码语言:javascript
运行
复制
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);

然后你想把名字组合成这样:

代码语言:javascript
运行
复制
SELECT COLUMN_NAMES, `<column>`
FROM table

UNION

SELECT COLUMN_NAMES, `<column>`
FROM table

然后您需要指定日期:

代码语言:javascript
运行
复制
SELECT COLUMN_NAMES 
FROM table
WHERE DATE = 'DATEVALUE'

不要忘记对每个查询的结果进行连接,这有点复杂,但是如果您盯着它足够长的时间,您应该得到它。:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65045788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档