SELECT scd.goods_id, SUM (scd.e_qty) AS debit_qty
  FROM sys_core_master scm, sys_core_detail scd
 WHERE scm.core_master_id = scd.core_master_id
   AND scm.moveflag <> 'Z'
   AND scm.billtype_id IN ('4212',  '4411')
   AND TRUNC (scm.makedate) >=
          TO_DATE ('2007-12-28 07:19:57', 'yyyy-mm-dd hh:mm:ss')
   AND TRUNC (scm.makedate) <=
          TO_DATE ('2008-01-11 17:25:42', 'yyyy-mm-dd hh:mm:ss')
 GROUP BY scd.goods_id
我这样写时间查询对吗?在oracle数据库中没查到数据。请问各位好手,时间部分应该怎么写。

解决方案 »

  1.   

    try it ..
      SELECT scd.goods_id, 
             SUM(scd.e_qty) AS debit_qty
        FROM sys_core_master scm, sys_core_detail scd
       WHERE scm.core_master_id = scd.core_master_id
         AND scm.makedate 
             BETWEEN TO_DATE('2007-12-28 07:19:57','yyyy-mm-dd hh24:mi:ss')
                 AND TO_DATE('2008-01-11 17:25:42','yyyy-mm-dd hh24:mi:ss')
         AND scm.moveflag <> 'Z'
         AND scm.billtype_id IN ('4212', '4411')
       GROUP BY scd.goods_id;
      

  2.   

    用了trunc就是把日期截成年月日,已经没有时间部分,所以你这样关联肯定没有数据,要么前面截成年月日与后面
    TO_DATE   ('2007-12-28',   'yyyy-mm-dd')关联,要么就前面不要trunc直接关联。 
      

  3.   

    不好意思,还想问个问题。在后面的日期限制中,我想限制到现在,应该怎么写。
    SELECT   scd.goods_id,   SUM   (scd.e_qty)   AS   debit_qty 
        FROM   sys_core_master   scm,   sys_core_detail   scd 
      WHERE   scm.core_master_id   =   scd.core_master_id 
          AND   scm.moveflag   <>   'Z' 
          AND   scm.billtype_id   IN   ('4212',     '4411') 
          AND   TRUNC   (scm.makedate)   > = 
                        TO_DATE   ('2007-12-28   07:19:57',   'yyyy-mm-dd   hh:mm:ss') 
          AND   TRUNC   (scm.makedate)   <= 
                        TO_DATE   (现在) 
      GROUP   BY   scd.goods_id
      

  4.   

    将to_date(现在)改为:to_date(sysdate,'yyyy-mm-dd hh:mm:ss')就可以了
      

  5.   


    to_date(sysdate,'yyyy-mm-dd   hh:mm:ss') 好像这样写会报错的,用下面的语句好了 ..SELECT scd.goods_id, 
             SUM(scd.e_qty) AS debit_qty
        FROM sys_core_master scm, sys_core_detail scd
       WHERE scm.core_master_id = scd.core_master_id
         AND scm.makedate 
             BETWEEN TO_DATE('2007-12-28 07:19:57','yyyy-mm-dd hh24:mi:ss')
                 AND sysdate
         AND scm.moveflag <> 'Z'
         AND scm.billtype_id IN ('4212', '4411')
       GROUP BY scd.goods_id;