Re: [SQL ] 兩個SQL語法要合併寫在一起

看板Database作者 (最無價值單身漢)時間18年前 (2007/09/04 22:26), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串5/9 (看更多)
※ 引述《diamondking (天劍流星)》之銘言: : ※ 引述《TCH (最無價值單身漢)》之銘言: : : 我要的結果是: : : 產生一個有三欄的Table,第一欄的資料是Student表格的StuName,第二、三欄的資料 : : 都是SpellSpecify表格的函數計算結果。 : : Student表格內有各個班級的所有學生的基本資料。 : : Spell表格內存放的應是所有學生的值日表(不一定每個學生都會出現在此表)。 : : 並且,Student.StuID = Spell.SpellStuID : : 因為我正在寫 .Net 的 GridView ,底下有我寫的兩個不完整的語法.. : : 第一個語法:會顯示某個班級內所有 Student 的 StuName於GridView第一欄中。 : : 不完整之處:不知要怎麼安插函數,也不知要放哪個位置。 : : string sqlStrTEST = "select StuName from Student "; : : sqlStrTEST += "left join Spell on Student.StuID = Spell.SpellStuID and : : YearMonth = '" + YearMonth + "'"; : : sqlStrTEST += "where Student.UnitID ='" + ClassID.Substring(0, 3) + "' "; : : 第二個語法:會顯示 Spell 表格中正確的函數值。 : : 不完整之處:不知要怎麼顯示某個班級內的學生於GridView第一欄中。 : : string sqlStrTEST = "SELECT : : SpellStuName,sum(datediff(hh,StartTime,EndTime)),sum(datediff(hh,StartTime,EndTime))*100 : : as Bonus "; : : sqlStrTEST += "FROM Spell "; : : sqlStrTEST += "group by SpellStuName "; : : 請位小弟解答,感激不盡.. : 其實有比較簡單的寫法: : select a.StuName, : sum(datediff(hh,b.StartTime,b.EndTime)) Hours, : sum(datediff(hh,b.StartTime,b.EndTime))*100 Bonus : from Student a left outer join Spell b on a.StuID=b.SpellStuID : where b.YearMonth=200708 and a.UnitID=123 : group by a.StuName : 大致上是這樣,t-sql的語法不是很肯定,有錯請指正 感謝... 不過這樣的結果,在SQL Server執行卻只有顯示出現在Spell中的資料 我希望有此班級內全部人的資料,因為是 left join 所以右邊會有 null,都要顯示 ps:我好像試出來了,明天再PO上來 (因為是胡亂試出來的,自己現在也忘了作法 ^^|||) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.137.101.19 ※ 編輯: TCH 來自: 220.137.101.19 (09/04 22:28)
文章代碼(AID): #16tMiguw (Database)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 5 之 9 篇):
文章代碼(AID): #16tMiguw (Database)