Моя проблема заключается в том, что это приложение развернуто с учетом множества различных способов оплаты, и эти варианты оплаты варьируются от одного развертывания к другому.
У меня вопрос, как сделать так, чтобы набор результатов стал моим оператором выбора?
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 в следующем запросе, но код для этого довольно громоздкий. Я хочу знать, возможно ли это сделать одним запросом без помощи кода приложения.