Я пишу SQL-запрос, в котором я хочу перечислить и вычислить некоторые данные, все работает нормально, но единственная проблема, с которой я сталкиваюсь, это когда я суммирую значения в данном столбце, окончательный результат представляет собой общую сумму, но я хочу эту сумму только на октябрь месяц.
Сценарий выглядит следующим образом: мне нужно рассчитать общую сумму депозитов, сделанных клиентами за октябрь, с другой информацией, которая хорошо работает, это только сумма.
SQL:
SELECT customers.id AS 'Customer ID',
customers.firstname AS
'Customer First Name',
customers.lastname AS 'Customer Last Name'
,
users.firstname AS
'Employee First Name',
users.lastname AS 'Employee Last Name'
,
positions.currency AS 'Currency',
Sum(customer_deposits.amount) AS 'Total Deposits',
Sum(positions.status) AS 'Total Bets',
Sum(customer_total_statistics.totalbonusdeposits) AS 'Total Bonuses',
positions.date AS 'Date'
FROM customers
LEFT JOIN customer_deposits
ON customers.id = customer_deposits.customerid
LEFT JOIN users
ON customers.employeeinchargeid = users.id
LEFT JOIN positions
ON customers.id = positions.customerid
LEFT JOIN customer_total_statistics
ON customers.id = customer_total_statistics.customerid
WHERE customer_deposits.status = 'approved'
AND positions.status = 'won'
AND positions.date BETWEEN '2013-10-01' AND '2013-11-01'
AND customers.isdemo = '0'
GROUP BY customers.id
ORDER BY customers.id
and customer_deposits.date between '2013-10-01' and '2013-11-01'
. Другими словами, если вы не присоединяетесь к позициям напрямую, вы всегда получаете все данные о клиентах. В этом случае вы должны фильтровать каждую таблицу отдельно. 29.11.2013