0
我想写一个存储过程来从数据库中拉出一些聚合统计信息。使用动态选择mysql的存储过程的列
我想修改程序以允许动态选择列。
我的第一个想法是使用案例或IF语句来选择不同的列
DELIMITER//
CREATE PROCEDURE 'procStats'(IN buySell varchar(4))
SELECT
CASE
WHEN buySell = 'Buy' THEN AVG(salesTransactions.BuyPrice) AS AveragePrice,
WHEN buySell = 'Sell' THEN AVG(salesTransactions.SellPrice) AS AveragePrice,
END CASE;
MONTHNAME(salesTransactions.DateOfTransaction) as TransactionMonth
FROM
salesTransactions
GROUP BY
TransactionMonth
LIMIT 6;
END//
现在我不认为case语句用于这一目的,它目前不工作.. 。是否有可能实现上述?
仅供参考 - 我完全知道,我可以只选择两列,但我不希望公开两列到我的web应用程序。
嗨,谢谢你的建议。我担心这会是答案。只是认为这将是很多代码重复考虑所有需要改变的是1列(1行代码) – Gravy
@Gravy更新了我的答案。我不在意了:) – fancyPants
OOOH,这看起来不错...我会尽快找到正确的答案并标记出正确的答案。感谢帮助。 – Gravy