旋转并生成动态列名

时间:2019-12-05 20:37:30

标签: sql pivot many-to-many

我在两个表之间有一个多对多关系,而在我看来,唯一可以看到的方法是首先在左侧表上执行枢轴操作,以实质上“聚集”行以进行联接-key列,同时仍保留所需的信息,然后将正确的表聚合到相同的join-key,但只保留1个SUM'ed列。

正确的表将仅具有 Supplier_Code Amount ,但是正确的表具有多个数量,因此我将按Supplier_Code分组以得到总计,从而得到每个vendor_code单行。

我只是不知道如何使它起作用:(

下表中的列以粗体显示。

原始表(左)

供应商代码平台Material_Amount Labour_Amount Installer Amount Material_Percent Labour_Percent

Supplier1   Platform1   50  40  88  0.568181818 0.454545455                 
Supplier1   Platform2   20  30  46  0.434782609 0.652173913 

左表的理想输出:

Supplier_Code Platform1_Name Platform1_Mat_Amt Platform1_Lab_Amt Platform1_Inst_Amt Platform1_Mat_Per Platform1_Lab_Per Platform2_Name Platform2_Mat_Amt Platform2_Lab_Amt Platform2_Inst_Amt Platform2_Mat_Per Platform2_Lab_Per

Supplier1   Platform1   50  40  88  0.568181818 0.454545455 Platform2   20  30  46  0.434782609 0.652173913

左表可接受的输出:

供应商代码Platform1_Name Platform1_Inst_Amt Platform1_Mat_Per Platform1_Lab_Per Platform2_Name Platform2_Inst_Amt Platform2_Mat_Per Platform2_Lab_Per

Supplier1   Platform1   88  0.568181818 0.454545455 Platform2   46  0.434782609 0.652173913 

0 个答案:

没有答案