0

私はこれを解決したと思ったが、戻ってきた!! リファクタリング中のストアド プロシージャでこの最後のカーソルを削除しようとしています。

私の問題は、#UTM2 テーブルにリンクしてカーソルを削除し、すべてを 1 つのセットに戻すためにカーソルにロードされたテーブルの列がないことです。これに対する回避策はありますか???

 DECLARE @ChannelId INT, 
         @URLSignature Varchar(30), 
         @RawSQL VARCHAR(2000), 
         @SQLQuery VARCHAR(4000), 
         @ThisUTMId BIGINT  

 DECLARE cursChannels CURSOR STATIC 
     FOR 
     SELECT ChannelId, URLSignature, RawSQL  
     FROM dbo.TrackingChannel_tbl (NOLOCK)  
     WHERE ProcessVisitDate = 1  


  IF @URLSignature <> ''  
  SET @SQLQuery = @SQLQuery + 'AND u.RawURLRequest like ''%' + @URLSignature + '%'' '    

  IF @RawSQL <> ''  
  SET @SQLQuery = @SQLQuery + @RawSQL  

  EXEC (@SQLQuery)  


INSERT INTO dbo.TrackingChannelDailyTotal_tbl 
           (ChannelId, TrackingDate, Conversions, TotalMargin)  
SELECT @ChannelId, @ConvDate, Count(u1.trpUTMID), IsNUll(SUM(TotalMargin),0)  
FROM #UTM u1 
JOIN #UTM2 u2 
ON u1.TRputmid = u2.trputmid  

FETCH cursChannels INTO @ChannelId, @URLSignature, @RawSQL  

修正、#temp テーブルの作成方法

        CREATE TABLE #UTM 
      (trpUTMID BIGINT PRIMARY KEY, 
       TotalMArgin MONEY, 
       RawURLRequest Varchar(2000), 
       Keywords VARCHAR(1000), VisitDate DATETIME, 
       RefererURL VARCHAR(2000))  


    INSERT INTO #UTM (trputmid, TotalMargin)  
       SELECT trpUTMID, SUM(b.TotalMArgin)  
       FROM TrackingConversion_tbl  c (NOLOCK) 
       JOIN  Booking_tbl b (NOLOCK)             
       ON c.BookingId = b.BookingId 
       WHERE
          c.bookedDate > @convDate 
       GROUP BY trputmid  

    UPDATE u  
       SET RawURLRequest = v.RawURLRequest,  
           Keywords = v.Keywords,  
           VisitDate = v.VisitDate,  
           RefererURL = v.RefererURL  
      FROM #UTM u,    
           TrackingVisit_tbl (NOLOCK)  v   
      WHERE v.trpUTMID = u.trpUTMId

結果を出すことを望んで

ChannelId  TrackingDate             Conversions  TotalMargin
---------  -----------------------  -----------  -----------
1          2012-03-14 00:00:00.000  0            0.00
2          2012-03-14 00:00:00.000  22           557.0296
3          2012-03-14 00:00:00.000  0            0.00

現在の日付または 41 チャネルまでの各日

4

0 に答える 0