2016-09-23 27 views
0

我需要幫助來創建存儲過程。我正在學校系統工作,我想從不同的表中獲得費用細節。首先,請參閱我寫使用連接從表中獲取數據

@payment_id varchar(150), @campus_id varchar(150) as 
begin 
    select s.GR,s.Name,s.FatherName,c.Class+' (' +s.Section+ ')' as Class,f.ChallanNo,f.IssueDate,f.DueDate,f.FeeMonth,t.Name as FeeName, 
d.Amount 
    from FeePayment f 
    join Student s ON s.StudentId = f.FkStudentId 
       and f.PaymentId = @payment_id 
       and f.FkCampusId = @campus_id 
    join ClassDetail c ON c.ClassId = s.FkClassId 
    join FeeDetail d ON f.PaymentId = d.FkpaymentId  
    join FeeType t ON t.TypeId = d.FkFeeTypeId 
end 

此代碼工作正常的代碼,但在FeeType我想補充的方案時,t.TypeId!= d.FkFeeTypeId那麼d.FkFeeTypeId回報。我有一個收費類型的表中提到的所有英尺類型,並在產生費用我添加額外的英尺類型的文本框的情況下,如果footype沒有在英文字型表中提到,所以用戶可以手動寫腳型和數量。在獲取費用詳細信息時,將選擇在英式類型表中找到的所有英尺類型,並且如果在其表格中未找到英尺類型,則會按照原樣選擇d.FkFeeTypeId。 對不起我的英文不好:) 在此先感謝。

+0

當t.TypeId!= d.FkFeeTypeId時,您期望在結果中獲得新的一行?或者您希望在結果中爲每個FeeType設置一個列? – Sparrow

+0

很確定你需要的是將FeeType上的連接改爲左連接。爲自己做個忙,不要害怕使用一些空白區域。當您將所有左對齊的內容填充並留下空格時,您的查詢很難閱讀得比他們需要的更多。 –

+0

@SeanLange - 他有很多瘋狂的標籤。 – Hogan

回答

0

作爲建議,在連接查詢中不要使用負運算符。如果您需要使用負運算符,請在where部分使用它。

相關問題