0
我的问题是,此应用程序部署时考虑了很多不同的付款选项,而且这些付款选项因部署而异。如何让一组结果成为我的选择语句?
我的问题是,我如何使一组结果成为我的选择语句?
SELECT DISTINCT(CONCAT('SUM(IF(pay_type = "',pay_type,'", pay_amt,0)) AS `',pay_type,'`')) as queryFields
FROM transaction_payments;
这使它我这样的结果:
SUM(IF(pay_type = "Cash", pay_amt,0)) AS `Cash`, SUM(IF(pay_type = "Credit Card", pay_amt,0)) AS `Credit Card`
SUM(IF(pay_type = "Discount %", pay_amt,0)) AS `Discount %`, SUM(IF(pay_type = "Gift Card", pay_amt,0)) AS `Gift Card`
SUM(IF(pay_type = "Coupon", pay_amt,0)) AS `Coupon`
SUM(IF(pay_type = "Gift Certificate", pay_amt,0)) AS `Gift Certificate`
SUM(IF(pay_type = "Discount Amt.", pay_amt,0)) AS `Discount Amt.
变成我在下面的查询SELECT语句,但代码要做到这一点是相当繁琐的。我想知道如果没有应用程序代码的帮助,这可以在单个查询中执行。
我认为从sql生成select语句比手工编码所有可能的付款类型更容易,尤其是考虑到它们从一个部署到另一个部署都不尽相同。尽管如此,我的上司也不这么想。我只是想让机器能够工作。 感谢您的快速响应。 – kristofer 2009-10-08 19:46:25
要花上几天的时间来追踪所有可能的类型:( – kristofer 2009-10-08 20:02:40
你不必对它们进行硬编码,我在哪里说的? – longneck 2009-10-08 20:14:56