首页 > 解决方案 > 如何返回日期和销售收入的 SQL 语句

问题描述

我正在尝试运行 SQL 查询以返回当天和日期的总销售额(yyyy-mm-dd 格式)。我正在运行 filter_dailysales = (input date here) 变量的代码,但它不起作用。

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

我在 python 上使用 cx_oracle 输入了这样的代码

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

我想要的结果输出将是第一列:使用输入变量选择的日期,第二列:orders_price 的总和。结果将只是一排。

标签: sqloraclecx-oracle

解决方案


尝试将分组依据添加到您的查询中。就像是:

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


推荐阅读