Mysql 动态选择列名(基于另一个表行的值)

Mysql 动态选择列名(基于另一个表行的值),mysql,Mysql,我这里有一个有趣的问题,我不确定在不重构我正在使用的数据库的情况下是否可以解决这个问题,但接下来 我有一个查询,需要选择以下格式的信息:“SKU”、“产品类别”、“产品子类别”、“现有”、“位置”、“已分配”、“可用”、“本月接收” 除了“本月收货”栏外,我的每一个栏目都做得很好,这有点复杂。对于此列,我需要使用SKU值(称为fishbowlinventoryavailabilitybylg.part)获取“装运”表中列的每一行的总和,其中列与SKU具有相同的名称。 下面是一个可能有帮助的示例输

我这里有一个有趣的问题,我不确定在不重构我正在使用的数据库的情况下是否可以解决这个问题,但接下来

我有一个查询,需要选择以下格式的信息:“SKU”、“产品类别”、“产品子类别”、“现有”、“位置”、“已分配”、“可用”、“本月接收”

除了“本月收货”栏外,我的每一个栏目都做得很好,这有点复杂。对于此列,我需要使用SKU值(称为fishbowlinventoryavailabilitybylg.part)获取“装运”表中列的每一行的总和,其中列与SKU具有相同的名称。
下面是一个可能有帮助的示例输出:

以下是生成前7列的代码:

SELECT
fishbowlinventoryavailabilitybylg.part as SKU,
domo_productcosts_xlsx_costs.`product category` AS `Product Category`,
domo_productcosts_xlsx_costs.`product sub category` AS `Product Sub Category`,
fishbowlinventoryavailabilitybylg.qty AS `On Hand`,
fishbowlinventoryavailabilitybylg.LG AS Location,
fishbowlinventoryavailabilitybylg.allocated AS `Allocated`,
fishbowlinventoryavailabilitybylg.qty - fishbowlinventoryavailabilitybylg.allocated AS `Available`,
为了产生“本月收货”,我尝试了一些不同的方法,但没有成功。求和部分我可以做得很好,但动态查找列名是我无法理解的。我几乎希望我可以像“Shippings.fishbowlinventoryavailabilitybylg.part”这样的操作来获取装运表中的该列,但这毫无意义。

您不能使用变量(例如SKU列中的值)作为MySQL或大多数其他SQL语言中的列名。因此,大多数数据库设计人员都避免使用这种方式来布局表


大多数需要做这些事情的程序员都会编写程序来生成所需的SQL查询。名为
information\u schema.columns
的内置表可以实现这一点。

我试图给出答案,但感谢您提供更好的解释。使用这种方法是没有用的这是我想象的。看起来我需要c请允许我重新组织发货信息表。谢谢!