使用联接

时间:2016-09-23 20:47:07

标签: sql sql-server database stored-procedures

我需要帮助来创建存储过程。我正在研究学校系统,我想从不同的表格中获取费用详情。首先请看我写的代码

@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。我有一个费用类型表,其中提到了所有的脚类型,并且在生成费用中我添加了额外的脚型文本框,如果脚型表中没有提到脚型,那么用户可以手动写入脚型和数量。在获取费用详细信息时,选择脚类表中找到的所有脚型,如果在其表中找不到脚型,则按原样选择d.FkFeeTypeId。 对不起,我的英语不好 :) 提前谢谢。

1 个答案:

答案 0 :(得分:0)

作为建议,在连接查询中不要使用否定运算符。如果你需要使用负数运算符,请在where部分使用它。