我的日期数据类型的列我试图提取月份和年份 从完整日期开始计算一年中的总销售额 但我得到了期待的错误,;当我从我测试下面的查询 在蟾蜍和它的工作正常,无论如何查询将不会给我我想要的结果在蟾蜍只有一个月,我需要我的计算基于月和年
我尝试过截断但结果将是DD-MM-YYYY
To_char
适用于数据库专栏,但未在表单构建器
那么如何让这个查询起作用,有没有办法提取月份和年份?
SELECT NVL(SUM(TOTAL_PRICE),0)
INTO :DUMMY.M_TOTAL_ORDERS
FROM ORDERS
WHERE EXTRACT(MONTH FROM ORDER_DATE)= EXTRACT(MONTH FROM SYSDATE);
答案 0 :(得分:1)
你说你收到错误,但你没告诉我们错误是什么。您告诉我们查询“工作正常”,但它并不完全符合您的要求。包含样本数据和预期结果的测试用例非常有用。
我猜你想要
Set
我期望返回我认为你想要的结果。但它无法在SELECT NVL( SUM(total_price), 0)
FROM orders
WHERE trunc( order_date, 'MM' ) = trunc( sysdate, 'MM' )
上使用常规索引(您可以在order_date
上创建可以使用的基于函数的索引。)
trunc(order_date, 'MM')
也可以(假设SELECT NVL( SUM(total_price), 0)
FROM orders
WHERE order_date BETWEEN trunc( sysdate, 'MM' ) AND sysdate
总是小于order_date
)并且允许您在sysdate
上使用索引(如果存在)。
如果这不是您所追求的,那么发布可重现的测试用例将非常有用。