У меня есть база данных, содержащая:
Customerno, No_, Количество
Я хотел бы вернуть ТОП 10 самых продаваемых продуктов на одного клиента за один раз ...
я могу получить ТОП 10, например:
SELECT TOP 10 [No_],sum([Quantity]) as antal
FROM orderlines
WHERE [Gen_ Prod_ Posting Group] = 'HANDEL'
AND [Customerno] = 10001
GROUP BY [No_]
HAVING sum([Quantity]) >= 2
ORDER BY sum([Quantity]) DESC
, но мне нужен какой-то "foreach", потому что приведенный выше запрос ограничен клиентом: 10001
я бы хотел, чтобы он был зацикленforeach Different customerno, поэтому я получаю полный список
простой способ, который я знаю, - это сделать
SQL-запрос на PHP следующим образом:
while($row = myssql_fetch_array(mssql_query(SELECT DISTINCT Customerno FROM orderlines)))
{
$new_query = ("SELECT TOP 10 [No_],sum([Quantity]) as antal
FROM orderlines
WHERE [Customerno] = $row['customerno']
GROUP BY [No_]
HAVING sum([Quantity]) >= 2
ORDER BY sum([Quantity]) DESC");
}
но я чувствуюэто должно быть более эффективно делать прямо в SQL?