4
我正在尝试创建我认为是在列名称的参数中调用的相当简单的过程。无法通过子查询在Mysql过程中传递参数
这是我创造的过程:
CREATE DEFINER=`root`@`%` PROCEDURE `test`(in col varchar(225))
BEGIN
-- Column of Averages
DROP temporary TABLE IF EXISTS temp;
CREATE temporary TABLE IF NOT EXISTS temp AS
SELECT col,
Round(Avg(bcount), 0) AS `Average # of Loans`
FROM (SELECT col,
Count(borrower) AS bcount
FROM whatif_dataset
WHERE loan_lienposition = 'first'
GROUP BY col,
Month(Str_to_date(status_fundingdate, '%m/%d/%Y')),
Year(Str_to_date(status_fundingdate, '%m/%d/%Y')))AS dt
GROUP BY col;
END
然而,当我打电话的过程我只得到一个记录,即:
Col Average # of Loans
'Passed Parameter' 757
它就像参数没有被传递在我看来,通过正确。 MYSQL中是否存在一些限制,不允许我这样做?
当我运行与具体列名相同的查询currentprocessor这是期望的结果:
currentprocessor Average # of Loans
proc1 20
proc2 12
proc3 8
proc4 22
proc5 24
你是什么期待?您可能需要一个准备好的声明,检查此:http://stackoverflow.com/questions/11699027/dynamic-column-name-selection-in-mysql –
谢谢,我用一个准备好的声明,以获得所需的结果 –
不错,看起来不错。 –