insert into DCT_EXCEL_SALES_SCRIPT_MONTH (
              sid,
              sourceid,
              useno,
              filedate,
              salesdate,
              customid,
              customname,
              goodsid,
              goodstype,
              factoryname,
              goodsunit,
              lotno,
              proddate,
              invaliddate,
              goodsqty,
              unitprice,
              total_line,
              databatchid,
              datacount,
              datastate)
              select seq_dct_data_batchid.nextval,
                    nSourceID,                           --数据来源
                     szUseNo,                            --逻辑时间周期号
                     dtEhauDate,                         --审核时间
                     case                                --查询是否有异常的销售日期,如果有用3000-1-1日标记
                     when salesdate is null then         --空值为异常
                       TO_date('3000-01-01 00:00:00',
                                'YYYY-MM-DD HH24:MI:SS')
                     when salesdate < dtStartDate then   --销售日期早于任务起始日期为异常
                          TO_date('3000-01-01 00:00:00',
                                'YYYY-MM-DD HH24:MI:SS')
                     when salesdate >dtEndDate then      --销售日期晚于任务结束日期为异常
                           TO_date('3000-01-01 00:00:00',
                                'YYYY-MM-DD HH24:MI:SS')
                      else salesdate                     --如果在起始日期,截止日期之内的为正常数据,正常采集
                     end                     
                     customid,                           --客户ID
                     customname,                         --客户姓名
                     goodsid,                            --货品ID
                     goodsname,                          --货品名称
                     goodstype,                          --规格
                     factoryname,                        --生产厂家
                     goodsunit,                          --计量单位
                     lotno,                              -- 批号
                     proddate,                           --生产日期
                     invaliddate,                        --有效期至
                     goodsqty,                           --数量
                     unitprice,                          --单价
                     total_line,                         --金额
                     nDataBatchID,                       --数据批次ID
                 
                     0                                   --数据抽取状态,默认为0
                     from
                     DIP_DATA_SALES
                     where
                     EHID=nEhid;
                     大家帮我看看我的SQL哪里出错了

解决方案 »

  1.   

    错误提示?
    where EHID=nEhid;?
      

  2.   

    case                                --查询是否有异常的销售日期,如果有用3000-1-1日标记
                         when salesdate is null then         --空值为异常
                           TO_date('3000-01-01 00:00:00',
                                    'YYYY-MM-DD HH24:MI:SS')
                         when salesdate < dtStartDate then   --销售日期早于任务起始日期为异常
                              TO_date('3000-01-01 00:00:00',
                                    'YYYY-MM-DD HH24:MI:SS')
                         when salesdate >dtEndDate then      --销售日期晚于任务结束日期为异常
                               TO_date('3000-01-01 00:00:00',
                                    'YYYY-MM-DD HH24:MI:SS')
                          else salesdate                     --如果在起始日期,截止日期之内的为正常数据,正常采集
                         end                     这里最后少了个,
      

  3.   

    还有一个问题就是invaliddate 两个表中的这个列设置的是同一类型,为啥提示说类型不一致?!
      

  4.   

       insert into DCT_EXCEL_SALES_SCRIPT_MONTH (
                  sid,
                  sourceid,
                  useno,
                  filedate,
                  salesdate,
                  customid,
                  customname,
                  goodsid,
                  goodstype,
                  factoryname,
                  goodsunit,
                  lotno,
                  proddate,
                  invaliddate,
                  goodsqty,
                  unitprice,
                  total_line,
                  databatchid,
                  datastate)
                  select seq_dct_data_batchid.nextval,
                        nSourceID,                           --数据来源
                         szUseNo,                            --逻辑时间周期号
                         dtEhauDate,                         --审核时间
                         case                                --查询是否有异常的销售日期,如果有用3000-1-1日标记
                         when salesdate is null then         --空值为异常
                           TO_date('3000-01-01 00:00:00',
                                    'YYYY-MM-DD HH24:MI:SS')
                         when salesdate < dtStartDate then   --销售日期早于任务起始日期为异常
                              TO_date('3000-01-01 00:00:00',
                                    'YYYY-MM-DD HH24:MI:SS')
                         when salesdate >dtEndDate then      --销售日期晚于任务结束日期为异常
                               TO_date('3000-01-01 00:00:00',
                                    'YYYY-MM-DD HH24:MI:SS')
                          else salesdate                     --如果在起始日期,截止日期之内的为正常数据,正常采集
                         end,                    
                         customid,                           --客户ID
                         customname,                         --客户姓名
                         goodsid,                            --货品ID
                         goodsname,                          --货品名称
                         goodstype,                          --规格
                         factoryname,                        --生产厂家
                         goodsunit,                          --计量单位
                         lotno,                              -- 批号
                         proddate,                           --生产日期
                         invaliddate,                        --有效期至
                         goodsqty,                           --数量
                         unitprice,                          --单价
                         total_line,                         --金额
                         nDataBatchID,                       --数据批次ID
                         0                              --数据抽取状态,默认为0
                         from
                         DIP_DATA_SALES@dbl_dct_dip  DIP_DATA_SALES
                         where
                         EHID=nEhid;现在是值过多。。