SQL заявление о том, как вернуть дату и доход от продаж - PullRequest
0 голосов
/ 08 мая 2020

Я пытаюсь выполнить запрос SQL, чтобы вернуть мои общие продажи за день и дату (формат гггг-мм-дд). Я запускаю код, в котором переменная filter_dailysales = (здесь дата ввода), но он не работает.

SELECT TO_CHAR(Orders_OrderTimeStamp, 'yyyy-mm-dd'), SUM(Orders_Price) 
  FROM Orders 
 WHERE TO_CHAR(Orders_OrderTimeStamp, 'yyyy-mm-dd') = '"+str(filter_dailysales)+"')

Итак, у меня есть таблица Orders со столбцами Orders_ID, Orders_OrderTimeStamp, Orders_Price

Я ввел такой код, используя cx_ oracle на python

c.execute("insert into orders values ('9', 1.7, sysdate-31, 9, sysdate-31, '2', '1', '3')")

Мой желаемый результат будет первым столбцом: Дата, выбранная входной переменной, второй столбец: агрегированная сумма orders_price. Результатом будет всего одна строка.

1 Ответ

0 голосов
/ 09 мая 2020

Попробуйте добавить к вашему запросу группу по. Примерно так:

SELECT TO_CHAR(Orders_OrderTimeStamp, 'yyyy-mm-dd')
,      SUM(Orders_Price) 
FROM Orders 
WHERE TO_CHAR(Orders_OrderTimeStamp, 'yyyy-mm-dd') = '"+str(filter_dailysales)+"')
GROUP BY TO_CHAR(Orders_OrderTimeStamp, 'yyyy-mm-dd')

Кроме того, по возможности используйте переменные связывания вместо подстановки строк. См .:

https://blogs.oracle.com/sql/improve-sql-query-performance-by-using-bind-variables

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...