Ошибка синтаксиса SQL на FROM и JOIN

0

Может ли кто-нибудь указать мне в правильном направлении, почему этот запрос sql получил ошибку?

http://sqlfiddle.com/#!9/40058/2

Ожидаемые результаты

получить имена Продукта на столе,

количество продаж на этом продукте,

Сумма (сумма транзакции) и чистая сумма (statementdebit)

  • 0
    transaction является ключевым словом. вы должны изменить имя таблицы
  • 1
    sqlfiddle.com/#!9/40058/63
Показать ещё 2 комментария
Теги:

4 ответа

4
Лучший ответ

Пара ошибок в запросе

  • Закрывающие круглые скобки отсутствуют в 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';

Рабочий скрипт SQL

1
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;
1

транзакция - это ключевое слово, пожалуйста, покройте его 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';
0

надеюсь, что это поможет вам, я немного запутался, потому что именования полей имен таблиц.

это мое решение 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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню