2016-09-20 172 views
1

我有一个有趣的问题,我不知道是否有可能解决没有重组我的数据库,但这里去...动态选择列名(基于另一个表行的值)

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

我的每一列工作都很好,不包括”接收本月“列,这有点复杂。对于这一列,我需要使用SKU值(称为fishbowlinventoryavailabilitybylg.part)来获得“货运”表中列的每一行的总和,其中该列与SKU具有相同的名称。
这里将是一个例子输出,可以帮助:http://i.imgur.com/rv7lXxJ.png

这里是我的代码生成前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`, 

要尽量生成“收到此月”我已经尝试了几不同的事情,但我没有运气。总结部分我可以做得很好,但它动态查找列名,我无法弄清楚。我几乎希望我可以做一些类似于“shipments.fishbowlinventoryavailabilitybylg.part”的操作来获取货物表中的该列,但这没有任何意义。

回答

2

您不能将变量(例如SKU列中的值)用作因为这个原因,大多数数据库设计人员都避免使用这种方法来布局表格

大多数需要做这些事情的程序员编写程序来生成他们需要的SQL查询。内置的表格名为information_schema.columns可以为你提供帮助

+0

我试过了,但是为了更好的解释,谢谢你的帮助,这种方法没用, – ad4s

+1

这是我想象的。看起来我需要说服一些人让我重构货运信息表。谢谢! –

相关问题