Re: [SQL ] 兩個SQL語法要合併寫在一起
※ 引述《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的語法不是很肯定,有錯請指正
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.167.209.114
討論串 (同標題文章)