【发布时间】:2020-02-01 17:55:29
【问题描述】:
例如:
food fee admission fee
------------------------
100 0
0 100
50 50
0 0
我希望查询忽略两个费用字段中的 0(零)值。所以输出应该是
100 0
0 100
50 50
代码
WITH cteReports AS
(
SELECT
tblStudentFees.AdmissionFee, tblStudentFees.BankFee,
tblStudentFees.BookFee, tblStudentFees.ClassName, tblStudentFees.Date,
tblStudentFees.DivisionName, tblStudentFees.FoodFee,
tblStudentFees.OtherFee, tblStudentFees.OtherFee2,
tblStudentFees.StationaryFee, tblStudentFees.StudentFeesId,
tblStudentFees.StudentNo, tblStudentFees.Total, tblStudent.Name,
users.Username, tblState.StateName, tblStudent.StateId,
tblStudent.DistrictId, tblStudent.Name AS Expr1,
users.Username AS Expr2, tblStudent.CityName,
tblStudentFees.PaymentType, tblStudentFees.AccountNo,
tblStudent.Study
FROM
tblStudentFees AS tblStudentFees
LEFT OUTER JOIN
tblStudent AS tblStudent ON tblStudent.StudentNo = tblStudentFees.StudentNo
LEFT OUTER JOIN
tblState AS tblState ON tblState.StateId = tblStudent.StateId
LEFT OUTER JOIN
tblUser AS users ON tblStudentFees.InsertBy = users.UserId
WHERE
tblStudentFees.AdmissionFee != 0.00
AND tblStudentFees.FoodFee = 0.00
OR tblStudentFees.AdmissionFee = 0.00
AND tblStudentFees.FoodFee != 0.00
OR tblStudentFees.AdmissionFee!= 0.00
AND tblStudentFees.FoodFee != 0.00
)
SELECT
AdmissionFee, FoodFee, BankFee, BookFee, ClassName,
Date, DivisionName, OtherFee, OtherFee2,
StationaryFee, StudentFeesId, StudentNo, Total,
Name, Username, StateName, StateId, DistrictId,
Expr1, Expr2, CityName, PaymentType, AccountNo
FROM
cteReports
WHERE
CityName LIKE '%' + @SearchTerm + '%'
AND Date >= @dtfrom
AND Date <= @dtTo
AND Study = 'TRUE'
【问题讨论】:
-
忽略是什么意思?只需将它们替换为 NULL 或 ' ' 或根本不显示它们?
-
不应该同时显示 0 0
-
您可以过滤为零的行的总和
标签: asp.net sql-server stored-procedures c#-4.0 left-join