1

下面UPDATE甲IAM更新facot Sqares表 -iam使用updatd因子從sqare表中參數 到calulate最終值以下UPDATE甲IAM更新facot Sqares表 下面更新IAM更新facot Sqares表連續更新存儲過程中的語句?

DECLARE @Year char(8) = '2017'; 

WITH E1 AS(
    SELECT N FROM (VALUES(0),(0),(0),(0),(0),(0),(0),(0),(0),(0)) E(N) 
), 
E3 AS(
    SELECT a.N FROM E1 a, E1 b, E1 c 
), 
cteTally AS(
    SELECT TOP (360) DATEADD(dd, (ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) - 1), CAST(@Year AS date)) myDate 
    FROM E3 
), 
weekDays AS(
    SELECT myDate, ROW_NUMBER() OVER(PARTITION BY MONTH(myDate) ORDER BY myDate) rn 
    FROM cteTally 
    WHERE DATENAME(WEEKDAY, myDate) NOT IN ('Saturday', 'Sunday') 
), 
    Final as(
SELECT 
myDate StartDay, 
datename(dw,myDate) Name, 

DATEADD(dd,19,myDate) EndDay, 
    DATEADD(MM, DATEDIFF(MM, 0, myDate), 0) FirstDay 
FROM weekDays 
WHERE rn = 1 
) 

SELECT FirstDay,StartDay,Name as StartName, 

case when Name='Monday' THEN DATEADD(dd,18,StartDay) 
    when Name='Tuesday' THEN DATEADD(dd,17,StartDay) 
    when Name='Wednesday' THEN DATEADD(dd,16,StartDay) 
    when Name='Thursday' THEN DATEADD(dd,15,StartDay) 
    when Name='Friday' THEN DATEADD(dd,14,StartDay) 

      ELSE NULL END AS EndDate, 


      case when Name='Monday' THEN datename(dw,DATEADD(dd,18,StartDay)) 
    when Name='Tuesday' THEN datename(dw,DATEADD(dd,17,StartDay)) 
    when Name='Wednesday' THEN datename(dw,DATEADD(dd,16,StartDay)) 
    when Name='Thursday' THEN datename(dw,DATEADD(dd,15,StartDay)) 
    when Name='Friday' THEN datename(dw,DATEADD(dd,14,StartDay)) 

      ELSE NULL END AS EndName 
into #Dates FROM Final 
+4

請提供一些示例數據以顯示問題所在。 –

回答

0

聲明一個參數@factor。 將第一條語句修改爲set @factor =select B.candy/b.randy .....。 然後在沒有連接的情況下進行更新。 (使用@因子) 調試並分析@factor來選擇你的工作。 或者你可以在第二次更新中使用(nolock),但請記住,你沒有提交你的交易,因爲它看起來是在最後一次更新之後(你的「問題」看起來像你在一個交易中,你的第一次更新不會請在第二次更新之前提交,以便再次選擇尚未更新的表)

0

這可能是由於數據類型轉換造成的。

請檢查c。 finalvalue可以保存/插入/檢索(cost * factor)的返回類型。

Sql服務器更新將盡其一部分,但數據類型需要驗證。

0

DECLARE @StartDate日期 DECLARE @EndDate日期 DECLARE @Cursor CURSOR SET @Cursor = FOR CURSOR從#Dates

OPEN @Cursor選擇朝九特派,結束日期 FETCH NEXT FROM @Cursor INTO @StartDate ,@結束日期 WHILE @@ FETCH_STATUS = 0 BEGIN

INSERT INTO #Dest 選擇@StartDate起始日期,結束日期@結束日期,MAX(高)高,分鐘(低)低從#Results 其中@StartDate和@EndDate 之間日期FETCH NEXT FROM INTO @Cursor @起始日期,結束日期@ END CLOSE @Cursor DEALLOCATE @Cursor SELECT B. [開],A。* FROM #Dest甲 JOIN#結果B ON A.StartDate = B.dATE