我有列与日期数据类型,我试图提取月份和年份从日期算起,按年计算当月总销售额但我得到的错误是预期的;当发现从我测试查询下面在蟾蜍和它的作品中,无论如何,查询不会给我我到底想要什么在蟾蜍的结果只有一个月,我需要我的计算基于月和年
我尝试了trunc,但结果将是DD-MM-YYYY
To_char
在数据库列工作,但不与text_item在表单构建器
那么如何让查询工作,是否有方法提取月份和年份?
SELECT NVL(SUM(TOTAL_PRICE),0)
INTO :DUMMY.M_TOTAL_ORDERS
FROM ORDERS
WHERE EXTRACT(MONTH FROM ORDER_DATE)= EXTRACT(MONTH FROM SYSDATE);
你说你得到了一个错误,但你没有告诉我们是什么错误。您告诉我们查询"工作正常",但它并没有完全按照您的要求执行。带有示例数据和预期结果的测试用例将非常有帮助。
我猜你想要
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
),并且允许您在order_date
上使用索引(如果存在的话)。
如果这不是你所追求的,发布一个可重复的测试用例将非常有帮助。