gpt4 book ai didi

mysql - xampp mysql - 来自一个表的数据透视结果

转载 作者:行者123 更新时间:2023-11-30 00:28:31 24 4
gpt4 key购买 nike

你能帮我解决我的问题吗?我正在使用带有 mysql 数据库的 xampp 服务器。

我有一个如下所示的表格:

|----|------------|--------------|-------------|------------|----------|
| id | period | category | subcategory | amount | currency |
|----|------------|--------------|-------------|------------|----------|
| 1 | 2014-01-01 | Category One | SubCat One | 325.48 | EUR |
| 2 | 2014-01-01 | Category One | SubCat One | 1680.20 | GBP |
| 3 | 2014-01-01 | Category One | SubCat Two | 229.78 | EUR |
| 4 | 2014-01-01 | Category One | SubCat Two | 1152.41 | GBP |
| 5 | 2014-01-01 | Category Two | SubCat One | 417.92 | EUR |
| 6 | 2014-01-01 | Category Two | SubCat One | 980.64 | GBP |
|----|------------|--------------|-------------|------------|----------|

我需要得到的结果是,项目将按三个字段(期间、类别、子类别)进行分组,并且每种货币的动态列将添加到每个组中。像这样的事情:

|------------|--------------|-------------|--------|---------|
| period | category | subcategory | EUR | GBP |
|------------|--------------|-------------|--------|---------|
| 2014-01-01 | Category One | SubCat One | 325.48 | 1680.20 |
| 2014-01-01 | Category One | SubCat Two | 229.78 | 1152.41 |
| 2014-01-01 | Category Two | SubCat One | 417.92 | 980.64 |
|------------|--------------|-------------|--------|---------|

我应该对表运行什么 SQL 查询才能获得所需的结果?

诀窍在于查询应该自动管理多种货币,因此当我使用新货币添加新记录时,将在结果记录集中动态创建另一列。

使用新货币(美元)添加第 7 行和第 8 行后的表格。

|----|------------|--------------|-------------|------------|----------|
| id | period | category | subcategory | amount | currency |
|----|------------|--------------|-------------|------------|----------|
| 1 | 2014-01-01 | Category One | SubCat One | 325.48 | EUR |
| 2 | 2014-01-01 | Category One | SubCat One | 1680.20 | GBP |
| 3 | 2014-01-01 | Category One | SubCat Two | 229.78 | EUR |
| 4 | 2014-01-01 | Category One | SubCat Two | 1152.41 | GBP |
| 5 | 2014-01-01 | Category Two | SubCat One | 417.92 | EUR |
| 6 | 2014-01-01 | Category Two | SubCat One | 980.64 | GBP |
|----|------------|--------------|-------------|------------|----------|
| 7 | 2014-01-01 | Category One | SubCat One | 2525.50 | USD |
| 8 | 2014-01-02 | Category One | SubCat One | 700.12 | USD |
|----|------------|--------------|-------------|------------|----------|

结果(动态创建的另一个货币列)。

|------------|--------------|-------------|--------|---------|---------|
| period | category | subcategory | EUR | GBP | USD |
|------------|--------------|-------------|--------|---------|---------|
| 2014-01-01 | Category One | SubCat One | 325.48 | 1680.20 | 2525.50 |
| 2014-01-01 | Category One | SubCat Two | 229.78 | 1152.41 | 0 |
| 2014-01-01 | Category Two | SubCat One | 417.92 | 980.64 | 0 |
| 2014-01-02 | Category One | SubCat One | 0 | 0 | 700.12 |
|------------|--------------|-------------|--------|---------|---------|

有什么简单的方法可以使用 sql 查询来实现此目的吗?或者需要一些 php 编程来以所需的方式准备结果?

感谢您的帮助,

谢谢

最佳答案

您可以创建存储过程,可能下面的链接会有所帮助

How to select column names dynamically in mySQL

关于mysql - xampp mysql - 来自一个表的数据透视结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22688696/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com