Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
Author |
Topic |
prashanth193
Starting Member
1 Post |
Posted - 2012-01-02 : 00:40:13
|
SIR I GOT 3 LOGICAL ERRORS WHILE I AM USING FIVE TABLES 1.STUDENTINFO,2.TBL TERM FEE,3.TBL FEE,4.TBL BUS FEE, 5.TBL TREA FEE FROM THE ABOVE FIVE TABLE I RETRIVED THE STUDEN_ID,STUDENT_CODE,STUDENT NAME,FATHER NAME,TERM FEE TYPE ID,TERM FEE AMOUNT,TERM FEE PAID AMOUNT,DUE AMOUNT,BUS FEE ID,ESCRIPTION,BUS FEE AMOUNMT,PAID AMOUNT AND DUE AMOUNT.BY USING THE FOLLOWING CODE I GOT THE DATA PROPERLY EXCEPT TERM FEE PAID AMOUNT AND BUS FEE PAID AMOUNT AND THIRD ONE IS WHENEVER I PAID TERM FEE THAT PERSON BUJS FEE DUE AMOUNT NOT DISPLAYEDTHE CODE IS SHOWN BELOW set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgoALTER procedure [dbo].[sp_prashanth] @intClassId int, @intSectionId int, @strFeeTypeIds varchar(1000), @strMonthIds varchar(500) AS BEGIN DECLARE @intFYID int-- DECLARE @fAmount FLOAT SELECT @intFYID = FY_ID FROM TBLFISCALYEARS WHERE ACTIVE = 1 SELECT Student_Id, SRC.Student_Code, SRC.FULLNAME, SRC.FATHERNAME, SRC.FEETYPE_ID TERMFEETYPE_ID,-- (SELECT Description from tblTermFeeTypes where FEETYPE_ID=SRC.FEETYPE_ID)DESCRIPTION,(SELECT Amount from tblTermFeeTypes where FEETYPE_ID=SRC.FEETYPE_ID)AMOUNT, SRC.DESCRIPTION,SRC.TERMFEE_AMOUNT, SRC.TERMFEE_PAID_AMOUNT PAID_AMOUNT,ISNULL(SRC.TERMFEE_AMOUNT,0) -ISNULL(SRC.TERMFEE_PAID_AMOUNT,0) DUE_AMOUNT,SRC.MONTH_ID FEETYPE_ID, (SELECT MONTH_NAME FROM TBLMONTHS WHERE MONTH_ID = SRC.MONTH_ID AND FY_ID = @intFYID) + 'Bus Fee' DESCRIPTION , TAF.BusFee AMOUNT, SRC.PAID_AMOUNT, TAF.BusFee - SRC.PAID_AMOUNT DUE_AMOUNT FROM ( SELECT TSI.Student_Code, TSI.FIRSTNAME + ' ' + TSI.LASTNAME FULLNAME, TSI.FATHERNAME,TFT.FEETYPE_ID,TFT.DESCRIPTION ,TFT.AMOUNT TERMFEE_AMOUNT,SUM(TF.AMOUNT) TERMFEE_PAID_AMOUNT,TBF.Student_Id,TBF.MONTH_ID, TBF.AREA_ID, SUM(TBF.AMOUNT) PAID_AMOUNT FROM TBLBUSFEE TBF, TBLSTUDENTINFO TSI, tblFee TF, tblTermFeeTypes TFT WHERE -- (ISNULL (TFT.AMOUNT,0) -ISNULL (TF.AMOUNT,0)) <> 0 TSI.CLASS_ID = @intClassId AND TSI.SECTION_ID = @intSectionId AND TSI.DELETE_FLAG = 0 AND TSI.FY_ID = @intFYID AND TFT.FY_ID = @intFYID AND TFT.CLASS_ID = @intClassId AND TFT.FY_ID = @intFYID AND TFT.FEETYPE_ID IN (SELECT VALUE FROM dbo.fn_split(@strFeeTypeIds,',')) AND TF.CLASS_ID = @intClassId AND TF.SECTION_ID = @intSectionId AND TF.FY_ID = @intFYID AND TF.FEETYPE_ID IN (SELECT VALUE FROM dbo.fn_split(@strFeeTypeIds,',')) AND TBF.CLASS_ID =@intClassId AND TBF.SECTION_ID = @intSectionId AND TBF.FY_ID =@intFYID AND TBF.MONTH_ID IN (SELECT VALUE FROM DBO.FN_SPLIT(@strMonthIds,',')) AND TSI.STUDENT_ID = TBF.STUDENT_ID AND TSI.DELETE_FLAG = 0 --AND TF.STUDENT_ID=TSI.STUDENT_ID-- AND TF.CLASS_ID=TBF.CLASS_ID-- AND TF.SECTION_ID=TBF.SECTION_ID-- AND TF.FEETYPE_ID IN (SELECT VALUE FROM dbo.fn_split(@strFeeTypeIds,','))-- AND TFT.FEETYPE_ID IN (SELECT VALUE FROM dbo.fn_split(@strFeeTypeIds,','))-- ORDER BY TStudent_Id, FEETYPE_ID GROUP BY TFT.FEETYPE_ID,TF.FEETYPE_ID, TF.Student_Id,TFT.DESCRIPTION,TFT.AMOUNT, TBF.Student_Id, TBF.MONTH_ID,TBF.AREA_ID,TSI.FIRSTNAME, TSI.LASTNAME , TSI.FATHERNAME ,TSI.Student_Code ) SRC LEFT OUTER JOIN tblAreaBusFee TAF ON TAF.FY_ID = @intFYID AND TAF.AREA_ID = SRC.AREA_ID AND TAF.MONTH_ID = SRC.MONTH_ID AND TAF.MONTH_ID IN (SELECT VALUE FROM DBO.FN_SPLIT(@strMonthIds,',')) --AND (TAF.BusFee - SRC.PAID_AMOUNT) <> 0 UNION SELECT DISTINCT TSI.Student_Id, TSI.Student_Code, FIRSTNAME + ' ' + LASTNAME FULLNAME, FATHERNAME, TFT.FEETYPE_ID TERMFEETYPE_ID,-- (SELECT Description from tblTermFeeTypes where FEETYPE_ID=TFT.FEETYPE_ID),(SELECT SUM(Amount) from tblTermFeeTypes where FEETYPE_ID=TFT.FEETYPE_ID), TFT.DESCRIPTION,TFT.AMOUNT,0 TERMFEE_PAID_AMOUNT,TFT.AMOUNT DUE_AMOUNT, TAF.MONTH_ID FEETYPE_ID,-- TF.AMOUNT DUE_AMOUNT,ISNULL(TFT.AMOUNT,0) -ISNULL(TF.AMOUNT,0) DUE_AMOUNT, (SELECT MONTH_NAME FROM TBLMONTHS WHERE MONTH_ID = TAF.MONTH_ID AND FY_ID = @intFYID) + ' Bus Fee' DESCRIPTION, TAF.BUSFEE AMOUNT , 0 PAID_AMOUNT, TAF.BUSFEE DUE_AMOUNT FROM TBLSTUDENTINFO TSI, tblAreaBusFee TAF, tblFEE TF, tblTermFeeTypes TFT WHERE TSI.CLASS_ID = @intClassId AND TSI.SECTION_ID = @intSectionId AND TSI.STUDENT_ID NOT IN (SELECT DISTINCT STUDENT_ID FROM TBLBUSFEE WHERE CLASS_ID = @intClassId and section_id = @intSectionId ) AND TSI.FY_ID = @intFYID AND TAF.FY_ID = @intFYID AND TSI.AREA_ID = TAF.AREA_ID AND TSI.DELETE_FLAG = 0 AND TAF.MONTH_ID IN (SELECT VALUE FROM DBO.FN_SPLIT(@strMonthIds,',')) -- AND TF.STUDENT_ID=TSI.STUDENT_ID-- AND TF.CLASS_ID=@intClassId-- AND TF.SECTION_ID=@intSectionId AND TF.FEETYPE_ID IN (SELECT VALUE FROM dbo.fn_split(@strFeeTypeIds,',')) AND TFT.FEETYPE_ID IN (SELECT VALUE FROM dbo.fn_split(@strFeeTypeIds,',')) UNION SELECT DISTINCT TSI.Student_Id,TSI.Student_code, FIRSTNAME + ' ' + LASTNAME FULLNAME, FATHERNAME, TFT.FEETYPE_ID TERMFEETYPE_ID,-- (SELECT Description from tblTermFeeTypes where FEETYPE_ID=TFT.FEETYPE_ID),(SELECT SUM(Amount) from tblTermFeeTypes where FEETYPE_ID=TFT.FEETYPE_ID), TFT.DESCRIPTION,TFT.AMOUNT,0 TERMFEE_PAID_AMOUNT,TFT.AMOUNT DUE_AMOUNT,TAF.MONTH_ID FEETYPE_ID, -- TF.AMOUNT DUE_AMOUNT,ISNULL(TFT.AMOUNT,0) -ISNULL(TF.AMOUNT,0) DUE_AMOUNT,-- TF.AMOUNT DUE_AMOUNT,(SELECT SUM(Amount) from tblTermFeeTypes where FEETYPE_ID=TFT.FEETYPE_ID) -TF.AMOUNT DUE_AMOUNT, (SELECT MONTH_NAME FROM TBLMONTHS WHERE MONTH_ID = TAF.MONTH_ID AND FY_ID = @intFYID) + ' Bus Fee' DESCRIPTION, TAF.BUSFEE AMOUNT , 0 PAID_AMOUNT, TAF.BUSFEE DUE_AMOUNT FROM TBLSTUDENTINFO TSI, tblAreaBusFee TAF, tblFEE TF, tblTermFeeTypes TFT WHERE TSI.CLASS_ID = @intClassId AND TSI.SECTION_ID = @intSectionId AND TSI.STUDENT_ID IN (SELECT DISTINCT STUDENT_ID FROM TBLBUSFEE WHERE CLASS_ID = @intClassId and section_id = @intSectionId ) AND TAF.MONTH_ID NOT IN (SELECT DISTINCT MONTH_ID FROM TBLBUSFEE WHERE CLASS_ID = @intClassId and section_id = @intSectionId AND STUDENT_ID = TSI.STUDENT_ID) AND TF.FEETYPE_ID NOT IN (SELECT DISTINCT FEETYPE_ID FROM tblFEE WHERE CLASS_ID = @intClassId and section_id = @intSectionId AND STUDENT_ID = TSI.STUDENT_ID) -- AND TFT.FEETYPE_ID NOT IN (SELECT DISTINCT FEETYPE_ID FROM tblTermFeeTypes WHERE CLASS_ID = @intClassId and section_id = @intSectionId AND STUDENT_ID = TSI.STUDENT_ID) AND TSI.FY_ID = @intFYID AND TAF.FY_ID = @intFYID AND TSI.AREA_ID = TAF.AREA_ID AND TSI.DELETE_FLAG = 0 AND TAF.MONTH_ID IN (SELECT VALUE FROM DBO.FN_SPLIT(@strMonthIds,',')) -- AND TF.STUDENT_ID=TSI.STUDENT_ID-- AND TF.CLASS_ID=@intClassId-- AND TF.SECTION_ID=@intSectionId AND TF.FEETYPE_ID IN (SELECT VALUE FROM dbo.fn_split(@strFeeTypeIds,','))-- AND TFT.FEETYPE_ID IN (SELECT VALUE FROM dbo.fn_split(@strFeeTypeIds,',')) ORDER BY Student_Id, FEETYPE_IDend |
|
sunitabeck
Master Smack Fu Yak Hacker
5155 Posts |
Posted - 2012-01-02 : 08:33:03
|
Without the benefit of some sample data, logical errors are very hard for someone not familiar with your code to figure out. Take a look at Brett's blog here if you need help in generating some sample data, table DDL's etc. http://weblogs.sqlteam.com/brettk/archive/2005/05/25/5276.aspxIn any case, to debug this, I would first pick one student whose results seem to be incorrect and add that student id in the where clause ("and student_code = 1234"). Then, change the UNION to UNION ALL and see what you get. That might give you some clues as to why the results are not what you expect.BTW, when you type in all capitals, it is sort of hard to read. Also, many people consider all capitals the equivalent of shouting. Would be better if you posted using the proper casing (as I am doing in this paragraph). |
 |
|
|
|
|
|
|