所以我有一個查詢,用2周的日期更新現有的表。不過,我在這裏遇到了一個問題。然而,我將日期更新到表中,我希望能夠跳過結束日期之前的週末。這裏是我的查詢和表格。正如我們在下面看到的,我試圖在where子句中加入,但結果仍然讓我在兩週之間的中間週末。我該如何解決這個問題。 這裏是sqlfiddle:http://sqlfiddle.com/#!3/35365/1 帶有增量日期的更新表
-2
A
回答
1
假設你正在試圖用日期給定的範圍,以更新項目名錶只有平日的一天,你應該先確定您的日期範圍內的工作日然後相應地更新。
首先CTE(DateRange)生成給定範圍之間的所有日期。
第二個CTE(星期幾)刪除週末並分配行號。
三CTE(項目)分配行號以項目名錶中的記錄,以便匹配那些平日
,最後做了更新。
Declare @WeekEnding datetime
declare @Startdate datetime
set @WeekEnding = '2015-09-26'
set @Startdate = '2015-09-14'
;With DateRange AS (
Select @StartDate NewDate, DATEPART(WEEKDAY, @StartDate) DayOfTheWeek
Union All
Select DATEADD(DAY, 1, NewDate), DATEPART(WEEKDAY, DATEADD(DAY, 1, NewDate)) From DateRange Where NewDate < @WeekEnding
), WeekDays AS (
Select ROW_NUMBER() OVER(ORDER BY NewDate) RowNumber, NewDate, DayOfTheWeek
From DateRange Where DayOfTheWeek NOT IN (1, 7)
), Projects AS (
Select ROW_NUMBER() OVER(ORDER BY PkId) RowNumber, PkId From ProjectName
) Update ProjectName
Set Day = WeekDays.NewDate
From ProjectName
Join Projects ON Projects.PkId = ProjectName.PkId
Join WeekDays ON WeekDays.RowNumber = Projects.RowNumber
注意:如果要過濾要在ProjectName上更新的記錄,則應在項目中應用過濾器。
相關問題
- 1. 增量現有日期
- 2. 不帶+號的PL/SQL增量日期/日期
- 3. 如何增量更新更新日誌?
- 4. javascript日期增量
- 5. PHP新增日期
- 6. 更新表增量場
- 7. 增量日期變量
- 8. JOOQ批量更新日期
- 9. 帶有過期日期的新日曆的PHP日曆
- 10. 在Android的增量日期
- 11. 帶有增量的分組數據的SQL更新
- 12. Hive - 如何跟蹤和更新Hive中增量表的上次修改日期?
- 13. 更新與空所有表日期
- 14. 帶有日期
- 15. 帶有列的更新表
- 16. 更新表按日期
- 17. 表內更新日期,Postgresql
- 18. 使用一條語句在SQL中用增量日期更新列表?
- 19. VBA增量日期錯誤
- 20. 帶最短日期的更新臨時表
- 21. 帶有AngularJS更新的引導日期選擇器問題
- 22. 帶有連接日期的更新列(SQL Server)
- 23. MySQL中的增量更新表
- 24. 增量UI更新
- 25. HIPPO CMS的增量更新
- 26. 如何更新現有日期並在MySQL表中插入新日期
- 27. 更改日期到列表中的所有對象,並更新
- 28. 帶有日期的文本
- 29. 從MySQL表中提取增量更新
- 30. 帶有子表單值的更新表
業務邏輯不混入數據訪問邏輯..在你的程序代碼,而不是數據庫進行更新。數據庫用於存儲/檢索/查詢數據。 – mergenchik
下次嘗試提供 [** SqlFiddle **](http://sqlfiddle.com/#!15/5368b/6),以便我們可以更好地理解問題並以更快的速度給出答案 。我們不能從照片上覆制/粘貼:( –
也標記你的照片,我猜最後一張照片是** SOURCE **數據,第一張照片是** RESULT **數據?但是你是什麼** DESIRE OUTPUT ** ? –