ERROR 1064 (42000) в простом SELECT

138
19 сентября 2019, 08:10

Не могу понять, что не так в первой строке запроса:

CREATE TABLE VSP_oper_data
    (`id` int, `Client_id` int, `Report_date` date, 
     `VSP_number` varchar(10), `Txn_type` varchar(10), `Txn_amount` float)
;
INSERT INTO VSP_oper_data
    (`id`, `Client_id`, `Report_date`, `VSP_number`, `Txn_type`, `Txn_amount`)
VALUES
    (1, 123, '2017.01.01', '123/013', 'debit', 50000),
    (2, 123, '2017.01.10', '555/013', 'debit', 500),
    (5, 123, '2017.03.10', '888/013', 'credit', 999),
    (7, 333, '2017.01.01', '123/013', 'debit', 9000),
    (8, 333, '2017.01.09', '666/013', 'debit', 400)
;

SELECT t1.Client_id, t1.Report_date, t1.Debit_amount, t1.Credit_amount, t2.Last_VSP
FROM
    (SELECT Client_id, MAX(Report_date) as Report_date,
        SUM(CASE WHEN Txn_type='debit' THEN Txn_amount ELSE 0 END) as Debit_amount,
        SUM(CASE WHEN Txn_type='credit' THEN Txn_amount ELSE 0 END) as Credit_amount
    FROM VSP_oper_data
    GROUP BY Client_id, MONTH(Report_date), YEAR(Report_date)
    ) t1
LEFT JOIN 
    (SELECT Client_id, Report_date, VSP_number as Last_VSP
    FROM VSP_oper_data 
    WHERE Client_id = t1.Client_id and Report_date = t1.Report_date
    ORDER BY Report_date DESC
    LIMIT 1
    ) t2
on t1.Client_id = t2.Client_id and t1.Report_date = t2.Report_date
;

Возможно, есть и другие ошибки..

Answer 1

Вроде работает

SELECT t1.Client_id, t1.Report_date, t1.Debit_amount, t1.Credit_amount, t2.Last_VSP
FROM
    (SELECT Client_id, MAX(Report_date) as Report_date,
        SUM(CASE WHEN Txn_type='debit' THEN Txn_amount ELSE 0 END) as Debit_amount,
        SUM(CASE WHEN Txn_type='credit' THEN Txn_amount ELSE 0 END) as Credit_amount
    FROM VSP_oper_data
    GROUP BY Client_id, MONTH(Report_date), YEAR(Report_date)
    ) t1
LEFT JOIN 
    (SELECT tmp.Client_id, tmp.Report_date, tmp.VSP_number as Last_VSP
    FROM VSP_oper_data tmp
    WHERE tmp.Client_id = Client_id and tmp.Report_date = Report_date
    ORDER BY tmp.Report_date DESC
    ) t2
ON t1.Client_id = t2.Client_id AND t1.Report_date = t2.Report_date
ORDER BY Client_id, Report_date
; 
READ ALSO
Выборка уникальных записей mysql без Group By

Выборка уникальных записей mysql без Group By

Всем привет! Помогите правильно составить запрос mysql, результатом которого должны быть уникальные записи таблицы books, но без использования...

122
Вёрстка HTML подписи, размер элементов

Вёрстка HTML подписи, размер элементов

Написал такой код подписи html письма:

153
width: 100% не корректно работает

width: 100% не корректно работает

Сайт https://dwimarketingru шапка имеет position: fixed; и width: 100% и в мобильной версии она растягивается в ширину больше, чем ширина экрана, хотя body и html имеют...

136
Вопрос по верстке. Как сделать такое?

Вопрос по верстке. Как сделать такое?

Как сделать чтобы было четко по центру, но справа был блок, который немного вылазит ? Без всяких костылейПолучается сделать так только если...

172