2013-01-24 56 views
-2

我使用Infopath創建時間表。數據將被存儲在數據庫中,因此我必須創建一個表。這個時間表將用於整個一年。創建時間表的SQL表

我需要幫助創建一個SQL表。表結構我想這個時間表是:

Project_Category Mon Tue Wed Thu Fri Sat Sun Total 
    Project 1 
    Project 2 
    Project 3 
    Project 4 
    Project 5 
    Other 
    Total                 

的日子應該是有時間(像,星期一2013年1月1日)或請建議我,如果你有更好的方法來做到這一點。

+4

我想你應該看看這裏http://www.w3schools.com/sql/default.asp –

+0

@JeremyWest是對的。對SQL的基本理解將無法終結。 –

回答

0

我不會將這些數據存儲在一張表中。考慮使用多個表而不是單個表來創建這個表。

例如,您可以使用Projects表,其中ProjectIdProjectName。然後,您可以輕鬆地將您的ProjectId字段鏈接到存儲ProjectId,DateFieldTotalProjectSummary表。我不知道你的Total行應該是什麼,但是如果它是一個日期範圍的計算,可以使用SQL來計算這些值,並且不要將它存儲在表中。

祝你好運 - 有大量的資源在線開始使用SQL - 做一點搜索。

+0

感謝您的快速回復,總計行數爲當天輸入的總小時數,另一個總數爲一週的總小時數。我是SQL新手,你可以請腳本幫忙,我真的很感激它 – user2007737

+0

這裏是一些SQL小提琴 - 也許這會幫助 - 祝你好運! http://sqlfiddle.com/#!3/56ffe/2 – sgeddes

0

正如sgeddes所建議的那樣,多個表格可能會更好地解決這個問題。

就我個人而言,我會避免每行超過1天,並且使其靈活性允許每天超過一個條目。

我想創建的結構如下:

Entry_ID INT IDENTITY(1,1) PRIMARY KEY 
Timesheet_ID INT, 
Project_ID INT, 
DateTimeFrom DATETIME, 
DateTimeTo DATETIME 

這就允許基於日期計算要簡單得多。

例如。對6月20日和6月25日之間的項目X小時數將是一個查詢,如:

SELECT SUM(DATEDIFF(MINUTES,DateTimeFrom,DateTimeTo)/60) AS [HOURS] 
FROM MyTable 
WHERE DateTimeFrom >= '2012-06-25' AND DateTimeTo <= '2012-06-29' 
+0

謝謝bendataclear – user2007737

+0

bendataclear,最後一個問題,關於日期,我希望輸入的所有日期,而不是隻是開始和結束日期。我怎樣才能做到這一點 – user2007737