2010-10-13 21 views
1

從2的數據表或添加柱填充網格我有3個表 enquiryDetail CourseMast 和FeeDetail上運行時

我必須顯示學生與coursefee和其餘和使用該定金費

的信息Im查詢

select Name,MobileNo,CourseName,CourseFees 
from [AsahEnquiry].[dbo].EnquiryDetail e,[AsahEnquiry].[dbo].CourseMast c 
where e.CourseId=c.CourseId AND Admitted='Yes' 

這給結果

Name MobileNo CourseName  CourseFees 
a 2222222222 Sinor Programer   30000 
as 3333333555 Junier Programer 15000 
as 8888888888 Junier Programer 15000 
a 1221111111 Junier Programer 15000 
i 4444444444 Junier Programer 15000 
ku 8888777777 Sinor Programer   30000 
er 6667777777 Sinor Programer   30000 
a 5555555555 Junier Programer 15000 
yuy 7888888888 Junier Programer 15000 

我有另一個查詢

select sum(FeeDeposite) as FeeDeposite, 
     (CourseFees-sum(FeeDeposite)) as FeeRemaining 
from [AsahEnquiry].[dbo].Feedetail f 
join [AsahEnquiry].[dbo].EnquiryDetail e on f.EnquiryID=e.EnquiryID 
join [AsahEnquiry].[dbo].CourseMast c on e.Courseid=c.CourseID 
group by f.EnquiryId,c.CourseFees,e.Name 

這給結果

FeeDeposite FeeRemaining 
16000   14000 
20000   10000 

我想在一個網格,以顯示它.. 任何人都可以建議我單查詢它... 還是可以的我在運行時添加其他查詢結果?

回答

-1

與其試圖將它們變成單個查詢(由於第二個查詢中的聚合而無法進行),請創建兩個視圖。然後,您可以創建第三個視圖,將兩個視圖結合在一起。簡化查詢而不是嘗試創建一個將在未來難以維護的大型查詢。

在頁面呈現期間合併數據也是一個壞主意,請讓SQL服務器爲您完成工作。

p.s.我認爲CourseID是加入兩個視圖的關鍵,因此請確保您的聚合視圖(第二個查詢)在SELECT中包含此字段。也使用LEFT JOIN,否則您可能會丟失記錄。

編輯:感謝格式化數據,使現在更有意義。這是兩個不同的查詢應該保持分開。第一個查詢會向您顯示註冊課程的人員以及他們已支付的費用。第二個查詢顯示您從每門課程獲得的預期金額利潤以及剩餘金額。

你想達到什麼目的?

+0

我已經從AsahEnquiry添加了查詢選擇名稱,MobileNo,CourseName,CourseFees,sum(FeeDeposite)作爲FeeDeposite,(CourseFees-sum(FeeDeposite))作爲費用。[dbo] .Feedetail f join [AsahEnquiry]。 [dbo] .InquiryDetail e on f.EnquiryID = e.EnquiryID join [AsahEnquiry]。[dbo] .CourseMast c on e.Courseid = c.CourseID group by f.EnquiryId,c.CourseFees,e.Name,e.MobileNo ,c.CourseName,但它沒有提供不提供任何費用的學生的信息 – 2010-10-13 08:51:54

相關問題