У меня есть две таблицы, которые соединяют себя name
и dateOfInput
.INNER JOIN wrong SUM и COUNT
Таблица документов
id
name
price
dateOfDocument
dateOfInput
Таблица клиентов
id
identification
name
dateOfInput
Данные, которые я хочу показать в сетке это что-то вроде этого:
Name | Identification | Total Price | Total Quantity
John #1 15.31 2
Stack #13 9.90 1
И в базы данных линии соответствующих таблиц:
Ряды документы:
VALUES('John', 10.31, '2015-01-01', '2015-01-01 15:00')
VALUES('John', 5.00, '2015-01-02', '2015-01-02 13:00')
VALUES('Stack', 9.90, '2015-01-01, '2015-01-01 12:00')
Ряды клиенты:
VALUES('#1', 'John', '2015-01-01 15:00')
VALUES('#1', 'John', '2015-01-02 13:00')
VALUES('#13', 'Stack', '2015-01-01 12:00')
Для достижения сетки я хочу, вот мой выбор:
SELECT doc.name, cust.identification,
SUM(doc.price) AS `totalPrice`,
COUNT(doc.name) AS `totalQuantity`
FROM documents AS doc
INNER JOIN customers AS cust ON cust.name = doc.name
WHERE doc.dateOfDocument >= '2015-01-01' AND
doc.dateOfInput = cust.dateOfInput
GROUP BY doc.name
Выход, который я получаю, ошибочен в цене и в количестве.
Name | Identification | Total Price | Total Quantity
John #1 10.31 1
Stack #13 9.90 1
я получил желаемые результаты, ничего не меняя. http://sqlfiddle.com/#!2/6fc9c/1/0 –