Может ли кто-нибудь указать мне в правильном направлении, почему этот запрос sql получил ошибку?
http://sqlfiddle.com/#!9/40058/2
Ожидаемые результаты
получить имена Продукта на столе,
количество продаж на этом продукте,
Сумма (сумма транзакции) и чистая сумма (statementdebit)
Пара ошибок в запросе
SUM(transaction.transactionamount AS Amount
COUNT()
Здесь рабочий SQL
SELECT
DISTINCT transaction.transactionservicetype AS Product,
COUNT(transaction.transactionid) AS Count2,
SUM(transaction.transactionamount) AS Amount,
SUM(statement.statementdebit) AS NetCost
FROM transaction
RIGHT JOIN statement ON transaction.transactionid = statement.transactionid
WHERE transaction.transactiondate = '2018-01-17' AND transaction.transactionservicetype = 'LBread';
Missing Closing parentheses on "SUM(transaction.transactionamount AS Amount" and
Extra Spaces between COUNT(),SUM() function like "SUM (transaction.transactionamount):
Updated query as per below using left outer join and
SQL-Fiddle is "http://sqlfiddle.com/#!9/40058/92" :
SELECT
T.transactionservicetype AS Product,
COUNT(T.transactionid) AS CountTotal,
SUM(T.transactionamount) AS Amount,
SUM(S.statementdebit) AS NetCost
FROM statement S
left outer join transaction T ON T.transactionid = S.transactionid
WHERE T.transactiondate = '2018-01-17' AND T.transactionservicetype = 'LBread'
group by T.transactionservicetype;
транзакция - это ключевое слово, пожалуйста, покройте его transaction
backtick
вам не хватает одной скобки после transaction.transactionmount
другое: COUNT()
, SUM()
должны быть похожими на COUNT()
, SUM()
в функции не требуется дополнительных пробелов.
SELECT
DISTINCT 'transaction'.transactionservicetype AS Product,
count('transaction'.transactionid) AS Count,
sum('transaction'.transactionamount) AS Amount,
sum(statement.statementdebit) AS NetCost
FROM 'transaction'
RIGHT JOIN statement ON 'transaction'.transactionid =
statement.transactionid
WHERE 'transaction'.transactiondate = '2018-01-17' AND
'transaction'.transactionservicetype = 'LBread';
надеюсь, что это поможет вам, я немного запутался, потому что именования полей имен таблиц.
это мое решение http://sqlfiddle.com/#!9/40058/83/0
sql-запрос:
SELECT sum(a.statementdebit) debit,count(a.statementdesc) tot_prod,
sum(b.transactionamount) amount,a.statementdesc
FROM
statement a
JOIN transaction b on a.transactionid=b.transactionid
where b.transactiondate = '2018-01-17'
group by a.statementdesc
transaction
является ключевым словом. вы должны изменить имя таблицы