我的查询如下
SELECT SupplierId,StakeholderSupplierId,Percentage
FROM std_Stakeholders
ORDER BY SupplierId
这给我的结果如下
SupplierId StakeholderSupplierId Percentage
1 3175 68.00
2929 5504 25.00
5504 1 68.25
5504 3238 50.00
5504 2810 23.00
我想将此输出转换为。
SupplierId StakeholderSupplierId1 Percentage StakeholderSupplierId2 Percentage StakeholderSupplierId3 Percentage
1 3175 68.00
2929 5504 25.00
5504 1 68.68 3238 50.00 2810 23.00
我尝试了join和pivot。无法成功编写适当的查询以获得所需的输出。谁能帮我吗
注意:StakeholderSupplierId不是静态的。它可能从1到n
最佳答案
我不知道这是否可以解决您的问题(取决于此查询后您需要执行的操作),但是对于此类问题,我使用了MySQL GROUP_CONCAT
函数。对于SQL Server中的类似解决方案,请检查this问题。
使用GROUP_CONCAT
函数,您可以得到如下结果表:
SupplierId StakeholderSupplierIds Percentages
1 3175 68.00
2929 5504 25.00
5504 1, 3238, 2810 68.68, 50.00, 23.00
关于sql - 查询转换表中的SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10039480/