MySQL поля счета / суммы - PullRequest
       10

MySQL поля счета / суммы

3 голосов
/ 02 мая 2010

То, что я пытаюсь достичь, - это отчет о ежедневных финансовых транзакциях. В моем SQL-запросе я хотел бы подсчитать общее количество транзакций с наличными, общую стоимость наличных и то же для чеков. Я хочу сделать это только на указанную дату.

Вот фрагмент запроса, с которым у меня возникли проблемы. Эти команды суммирования и подсчета обрабатывают все данные в таблице, а не для выбранной даты.

(SELECT SUM(amount) FROM TRANSACTION WHERE payment_type.name = 'cash') AS total_cash,
(SELECT COUNT(*) FROM TRANSACTION WHERE payment_type.name = 'cash') AS total_cash_transactions

Извините, если я не опубликовал достаточно подробностей, так как у меня нет времени. Если вам нужна дополнительная информация, просто спросите ..

Приветствие.

UPDATE: Я разместил больше информации о макете и результатах, которые я получаю здесь: www.conorhackett.com/sql/transaction.html

Проблема в том, что когда я присоединяюсь к payment_table (поэтому я могу указать имя_платы_имя вместо id), он считает все транзакции для наличных / чека. Ограничение по дате, похоже, исчезло.

Любая помощь приветствуется.

1 Ответ

3 голосов
/ 02 мая 2010

Нет необходимости в коррелированных подзапросах, просто используйте group by

select
 t.payment_type_id as type_id
,sum(t.amount) as total_cash
,count(*) as total_cash_transactions
from TRANSACTION t
where t.date = '2010-05-01'
group by t.payment_type_id

Затем вы можете объединить результат с payment_type, если вам нужно получить имена типов оттуда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...