Я пытаюсь объединить каждую уникальную ДАТУ в одну строку. Вместо этого я получаю итоговую сумму за CASH, возвращаемую в виде одной строки, а затем итоговую сумму за CREDIT, возвращаемую как другую строку. Как мне объединить эти строки в одну строку, сгруппированную по DATE?
См. Мой запрос ниже:
SELECT
DISTINCT orders.service_date,
/* CASH TOTAL */
CASE WHEN
customer.payment_type = "Cash"
THEN
CONCAT('$',
(SELECT
SUM(
((CASE
WHEN
orders.service= 'MT'
THEN
cast(customer.mtrate as DECIMAL(10,2))
WHEN
orders.service= 'MTF'
THEN
cast(customer.mtfrate as DECIMAL(10,2))
WHEN
orders.service= 'MTB'
THEN
cast(customer.mtbrate as DECIMAL(10,2))
END) + cast(((orders.cu + orders.pw + orders.r + orders.lr + orders.misc) * 0.80) as DECIMAL(10,2))))))
ELSE
" - "
END as Cash,
/* CREDIT TOTAL */
CASE WHEN
customer.payment_type = "Credit"
THEN
CONCAT('$',
(SELECT
SUM(
((CASE
WHEN
orders.service= 'MT'
THEN
cast(customer.mtrate as DECIMAL(10,2))
WHEN
orders.service= 'MTF'
THEN
cast(customer.mtfrate as DECIMAL(10,2))
WHEN
orders.service= 'MTB'
THEN
cast(customer.mtbrate as DECIMAL(10,2))
END) + cast(((orders.cu + orders.pw + orders.r + orders.lr + orders.misc) * 0.80) as DECIMAL(10,2))))))
ELSE
" - "
END as Credit,
/* GRAND TOTAL */
CONCAT('$',
(SELECT
SUM(
((CASE
WHEN
orders.service= 'MT'
THEN
cast(customer.mtrate as DECIMAL(10,2))
WHEN
orders.service= 'MTF'
THEN
cast(customer.mtfrate as DECIMAL(10,2))
WHEN
orders.service= 'MTB'
THEN
cast(customer.mtbrate as DECIMAL(10,2))
END) + cast(((orders.cu + orders.pw + orders.r + orders.lr + orders.misc) * 0.80) as DECIMAL(10,2)))))) as Total
FROM finalproject.orders
INNER JOIN finalproject.customer
USING(customerid)
GROUP BY customer.payment_type, orders.service_date
ORDER BY orders.service_date ASC
Что возвращается:
![enter image description here](https://i.stack.imgur.com/epNWx.png)
Большинство запросов, которые вы можете игнорировать - арифметика и тому подобное ... Я новичок в MySQL ... любые предложения приветствуются. Спасибо!