久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

sql如何將一行拆分為多行

sql how to split a row into multiple rows(sql如何將一行拆分為多行)
本文介紹了sql如何將一行拆分為多行的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

我們有一個表格,我想將該表格中的一行拆分為多行.如果你看到下面.那是我桌子上的一行.我們正在計算資源加載,我想將下面的這一行拆分到如下圖所示的結(jié)果表中.

We have a table and I want to split a row in that table into multiple rows. If you see below. That is one row from my table. We are calculating resource loading and I want to split this row below into the result table also shown in the image below.

我將負(fù)責(zé)計算周開始日期和小時數(shù),只需告訴我如何在 sql server 2005 中將一行拆分為多行.

I will take care of calculating the week start date and hours, just tell me how can I split a row into multiple rows in sql server 2005.

在這個例子中,大衛(wèi)從 3 月 3 日到 3 月 19 日工作了 25 個小時.

Here in this example David worked from march 3rd to march 19 for 25 hours.

這意味著如果我們將其除以工作周數(shù),則為 2 周.

Which means if we divide this by number of weeks worked, comes to 2 weeks.

從 3 月 7 日開始的一周到 3 月 11 日結(jié)束的一周,然后是 3 月 14 日開始的一周到 3 月 18 日結(jié)束的一周.

From week starting march 7 to week ending march 11, and then week starting march 14th to week end march 18th.

根據(jù)工作周數(shù)與工作天數(shù)之比來劃分小時數(shù).

The hours are split based on number of weeks worked in ratio of number of days worked.

推薦答案

你可以做的是有一個像

What you can do is have a table with week entries like

CREATE TABLE WeeKDays ( WeekStartDate date, WeekEndDate date);

現(xiàn)在用這個來加入你的桌子

Now JOIN your table with this one like

SELECT 
 Task_ID,Name, WeekStartDate, WeekEndDate
-- Add logic for splitting hours
, (hours/workdays)* 
 CASE 
     WHEN  (T.StartDate >= W.WeekStartDate AND T.StartDate <= W.WeekEndDate) THEN DATEDIFF(d,T.StartDate,W.WeekEndDate)
     WHEN  (T.EndDate >= W.WeekStartDate AND T.EndDate <= W.WeekEndDate) THEN DATEDIFF(d,W.WeekStartDate,T.StartDate)
     WHEN  (T.StartDate <W.WeekStartDate AND T.EndDate>W.WeeKEndDate) THEN 7
--assuming 7 working days
END as Hours

FROM Tasks T LEFT JOIN WeekDays W ON 
(T.StartDate >= W.WeekStartDate AND T.StartDate <= W.WeekEndDate)  
 OR (T.EndDate >= W.WeekStartDate AND T.EndDate <= W.WeekEndDate) 
 OR (T.StartDate <W.WeekStartDate AND T.EndDate>W.WeeKEndDate)

這篇關(guān)于sql如何將一行拆分為多行的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

Modify Existing decimal places info(修改現(xiàn)有小數(shù)位信息)
The correlation name #39;CONVERT#39; is specified multiple times(多次指定相關(guān)名稱“CONVERT)
T-SQL left join not returning null columns(T-SQL 左連接不返回空列)
remove duplicates from comma or pipeline operator string(從逗號或管道運算符字符串中刪除重復(fù)項)
Change an iterative query to a relational set-based query(將迭代查詢更改為基于關(guān)系集的查詢)
concatenate a zero onto sql server select value shows 4 digits still and not 5(將零連接到 sql server 選擇值仍然顯示 4 位而不是 5)
主站蜘蛛池模板: 欧美视频免费在线 | 最新日韩av| 日韩国产一区二区 | 国产一区二区三区精品久久久 | 国产三区av | 国产精品精品久久久 | 午夜精品一区二区三区三上悠亚 | 91久久久www播放日本观看 | 99看片网| 成人免费大片黄在线播放 | 久久青青| 久久免费视频在线 | 日韩欧美综合在线视频 | caoporn视频 | www国产精品 | 亚洲精品片 | 亚洲国产aⅴ成人精品无吗 欧美激情欧美激情在线五月 | 九九九久久国产免费 | 国户精品久久久久久久久久久不卡 | 91网站在线播放 | 国产三级电影网站 | 国产精品久久久久久久岛一牛影视 | 久热伊人 | 久久精品国产亚洲 | 国产精品 亚洲一区 | 国产精品美女久久久久久免费 | 亚洲一区中文 | 欧美做暖暖视频 | 免费久久99精品国产婷婷六月 | 日韩久久久一区二区 | 亚洲欧美激情视频 | 成人欧美一区二区三区黑人孕妇 | www.国产精 | 777毛片| 日韩成人免费视频 | 久久国产麻豆 | 国产精品久久久久久亚洲调教 | 中文字幕在线观看精品 | 国产精品精品3d动漫 | 亚洲精品免费看 | 亚洲欧美日韩国产综合 |