楼主贴出的代码大概有点笔误,改了一下:
SELECT identity, item_class, SUM (costs), SUM (charges)
FROM b,a
WHERE a.billing_date_time BETWEEN TO_DATE ('2002-01-01', 'YYYY-MM-DD')
AND TO_DATE ('2002-01-02', 'YYYY-MM-DD')
AND a.patient_id = b.patient_id
GROUP BY identity,
item_class;从语句上看不出什么错误,你先检察一下a表中有没有符合条件的纪录
SELECT identity, item_class, SUM (costs), SUM (charges)
FROM b,a
WHERE a.billing_date_time BETWEEN TO_DATE ('2002-01-01', 'YYYY-MM-DD')
AND TO_DATE ('2002-01-02', 'YYYY-MM-DD')
AND a.patient_id = b.patient_id
GROUP BY identity,
item_class;从语句上看不出什么错误,你先检察一下a表中有没有符合条件的纪录
1, 在A的BILLING_DATE_TIME上建立索引
2, FROM B,A --两个表都有索引时,大表在前,从小表驱动。
3,尽量不要在字段是使用函数,会忽略索引的,你可以
A.BILLING_DATE_TIME >= to_date('2002-01-01','YYYY-MM-DD')
and A.BILLING_DATE_TIME <= to_date('2002-01-02','YYYY-MM-DD')另外:
AND ( A.PATIENT_ID B.PATIENT_ID ) 什么意思阿?是= > < ?
我有问题啊!
在Oracle中如何查看由客户端传来的SQL语句
"在Oracle中如何查看由客户端传来的SQL语句"
在oracle中是一个不完全可以查看的,还处决于共享池大小
v$sql仅仅是保存在共享池池中的语句,一段时间后,没有被使用的可能就会被删除了.
所以,要想真正看客户端的语句,还是用审计