SELECT   
V_TRANSFER_D_STORE_ITEM.ACCT_DT,
V_TRANSFER_D_STORE_ITEM.STORE_CD, 
V_TRANSFER_D_STORE_ITEMJAN, 
SUM(V_TRANSFER_D_STORE_ITEM.TRANSFER_CNT)   AS   TRANSFER_CNT, 
SUM(V_TRANSFER_D_STORE_ITEM.TRANSFER_COST_AMT)   AS   TRANSFER_COST_AMT, 
SUM(V_TRANSFER_D_STORE_ITEM.TRANSFER_RETAIL_AMT)   AS   TRANSFER_RETAIL_AMT  FROM   V_TRANSFER_D_STORE_ITEM ,V_PURCHASE_UPDATE_KEY

WHERE   V_TRANSFER_D_STORE_ITEM.ACCT_DT   =   V_PURCHASE_UPDATE_KEY.ACCT_DT     
AND     V_TRANSFER_D_STORE_ITEM.STORE_CD   =   V_PURCHASE_UPDATE_KEY.STORE_CD   
AND   V_TRANSFER_D_STORE_ITEM.JAN   =V_PURCHASE_UPDATE_KEY.JAN

GROUP   BY   
V_TRANSFER_D_STORE_ITEM.ACCT_DT, 
V_TRANSFER_D_STORE_ITEM.STORE_CD, 
V_TRANSFER_D_STORE_ITEM.JAN   //-----这是哪个自查询的,try!

解决方案 »

  1.   

    To fwacky :这么打个比方吧,某公司有很多客户,一些客户有订单,还有一些没有订单,而我要显示全部的客户,所以简单的inner join不能显示全部客户,我开始用的是left join ,觉得left join比较慢,就换了这个方法,可是更慢了。
      

  2.   

      create       clustered         index       T_index1       on       #T   (ACCT_DT,   STORE_CD,   JAN) ---放在这个位置INSERT   INTO   PURCHASE_D_STORE_ITEM 
    SELECT   *   FROM   #T   WHERE   PURCHASE_CNT   !=   0   AND   PURCHASE_COST_AMT   !=   0   AND   PURCHASE_RETAIL_AMT   !=   0
      

  3.   

    建聚集索引放在insert\delete\update前时,只分降低速度,放在select前面
      

  4.   


    --这一段去掉建表,这样只会在生成表时暂时锁表。。这个速度会快点
    SELECT   
    ACCT_DT, 
    STORE_CD, 
    JAN, 
    0 AS   PURCHASE_CNT   , 
    0 AS   PURCHASE_COST_AMT, 
    0 AS   PURCHASE_RETAIL_AMT 
    into #TFROM 
    V_PURCHASE_UPDATE_KEY 
    GROUP   BY   
    ACCT_DT, 
    STORE_CD, 
    JAN 
      

  5.   

    TO  roy_88 :非常感谢,上次就是你帮忙,我才注册,不太会管理,也不知道怎么结贴,我试一下
      

  6.   

    TO roy_88:我想请教下事务的问题,一个存储过程加上事务后可能会导致存储过程执行不完吗
    我这儿有个过程,不加事务时2分钟,加上事务30多分也没有执行完成,会是什么原因呢
      

  7.   

    一个存储过程加上事务后可能会导致存储过程执行不完吗
    ---------不会,用事务可控制操作的步骤,其中一步出错时,返回所有事务
    --联机帮助上讲得详细点
    BEGIN TRANSACTION 代表一点,由连接引用的数据在该点是逻辑和物理上都一致的。如果遇上错误,在 BEGIN TRANSACTION 之后的所有数据改动都能进行回滚,以将数据返回到已知的一致状态。每个事务继续执行直到它无误地完成并且用 COMMIT TRANSACTION 对数据库作永久的改动,或者遇上错误并且用 ROLLBACK TRANSACTION 语句擦除所有改动。--------------------------
    不加事务时2分钟,加上事务30多分也没有执行完成,会是什么原因呢-------
    这与事务没关系,大概是其它操作锁定了表的资源..在查询分析器里,选中所有的语句。。按CTRL+L显示执行计划。。
    查看那一段语句占用的资源最多,然后再优化