SQL准备语句,每组具有不同的LIMIT值

时间:2017-10-12 18:31:34

标签: mysql sql prepared-statement mariadb greatest-n-per-group

我在查询中限制所选记录时遇到问题。我想做的是根据每组的计算字段限制记录组。这就是我到目前为止所拥有的:

SELECT
dealer_cap - Count( DynamicList_Used.dealer_id ) AS LeftToDial

INTO @Limit

FROM DynamicList_Used
INNER JOIN DealerCap 
ON DynamicList_Used.dealer_id = DealerCap.dealer_id 

WHERE
(
(
( DynamicList_Used.list_name ) = "OverDue"
OR ( DynamicList_Used.list_name ) = "SoonDue" 
OR ( DynamicList_Used.list_name ) = "Expired" 
OR ( DynamicList_Used.list_name ) = "Customer" 
) 
AND ( ( DynamicList_Used.creation_date ) BETWEEN '2017-09-21' AND '2017-
10-20' ) 
)

GROUP BY
DealerCap.dealer_id,
DealerCap.Program

HAVING
( ( ( DealerCap.Program ) = "National" ) );



PREPARE STMT FROM 'SELECT * FROM DynamicList_Usable GROUP BY dealer_id, lead_id LIMIT ?';
EXECUTE STMT USING @Limit;

返回' 1172 - 结果由多行'组成。我已经测试了它自己的第一个Select语句,我知道它正在返回我期望看到的值,它只是准备好的语句不能接受更多比一个值。

我的问题是如何使用多个值,匹配dealer_id并使用每个dealer_id匹配的select into语句生成的限制。在此先感谢您的帮助!

0 个答案:

没有答案