2013-11-30 3 views
0

У меня есть этот SQL, который дает мне 6 строк без пункта SUM (Сюр может дать больше, если условие истинно)Почему добавление SUM изменяет количество извлеченных строк?

SELECT id, prodname, prodid, st_date, montant, tvaval, quantite, status, factureno 
FROM StockData WHERE " + VenteWhere + " ORDER BY " + Order_by + " " + SortDir + " 

PS: VenteWhere, Order_by abd SortDir are the variables. 

Но когда я добавить SUM (quantite) Я получаю только одну строку. Есть ли способ иметь 6 строк данных и сумма 6 строк или я должен сделать еще один запрос для получения его

+0

Вы хотите, чтобы такое же значение для суммы во всех ваших строках было без GROUPING (дополнительный столбец)? Или вы хотите получить окончательную строку, которая имеет сумму для всех строк (extra-row)? –

ответ

2

Я думаю, что вы можете использовать

SELECT id, prodname, prodid, st_date, montant, tvaval, SUM(quantite), status, factureno 
FROM StockData 
WHERE " + VenteWhere + " 
ORDER BY " + Order_by + " " + SortDir + " 
GROUP BY xxxxx 

Где ххххх представляет переменную, которую вы хотите сгруппировать по строке.

Подведение итогов приведет к удалению строк его сумм и отображению самой суммы. Таким образом, вам нужно сгруппировать по какой-либо переменной, чтобы она разделила результаты на это появление переменных.

+0

Он говорит, что когда он добавляет сумму к кванту, он получает только один ряд, поэтому он, вероятно, уже делает это. –

+0

Да, он получает только одно квантовое событие в строке. Я добавил SUM (IF (условие, квант, 0)). Поэтому я должен добавить его в loop.read(). Как всегда ваш андерсер показал все строки, но не сумму. Поэтому я делаю это в цикле. Спасибо за внимание. –

+0

После добавления правильного имени столбца в GROUP BY и добавления того же условия, записанного в «VenteWhere», к SUM (IF (VenteWhere, quantite, 0)), он сработал. Я не знаю, почему он не работает только с условием WHERE и нуждается в сумме. –

Смежные вопросы