SQL

楼主贴出的代码大概有点笔误,改了一下:
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.   

    提点建议:
    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 ) 什么意思阿?是= > < ?
      

  2.   

    cyberflying(雁南飞):这么说就不好了:)过一会儿我就要下班了,你如果在的话帮帮别人嘛。你一直以来都挺热心的
      

  3.   

    谁帮帮我啊!
    我有问题啊!
    在Oracle中如何查看由客户端传来的SQL语句
      

  4.   

    呵呵,弱水兄谦虚了!您是要下班,偶可是要回家睡觉了:)“在Oracle中如何查看由客户端传来的SQL语句” ——我也想知道,学习ing
      

  5.   

    select * from v$sql;
      

  6.   

    具体来说
    "在Oracle中如何查看由客户端传来的SQL语句"
    在oracle中是一个不完全可以查看的,还处决于共享池大小
    v$sql仅仅是保存在共享池池中的语句,一段时间后,没有被使用的可能就会被删除了.
    所以,要想真正看客户端的语句,还是用审计