Member 12245539 Ответов: 2

Как получить значение больше нуля sqlserver


Я сделал запрос в sqlserver. код приведен ниже.

select ReceiptNo, S_Adm_No, paid_date, S_Adm_No, Class, S_Name, S_F_Name, Mode_Payment,ChqNo,ChqDated, bank_Name, For_the_Month , 
FHeadId, FHead,Fine, TotalAmount, Concession, payableAmount, SUM (Apr + May+Jun+Jul+Aug+Sep+Oct+Nov+[Dec]+Jan+Feb+Mar) as FEE 
from View_Fee_Receipt_Students where ReceiptNo='AIS/16-17/00096' group by ReceiptNo, 
S_Adm_No, paid_date, S_Adm_No, Class, S_Name, S_F_Name, Mode_Payment,ChqNo,ChqDated, bank_Name, For_the_Month ,
Fine, TotalAmount, FHeadId, FHead, Concession, payableAmount


Мой вопрос заключается в том, как получить значение, когда плата больше нуля...

Что я уже пробовал:

.........................................................

Peter Leow

Ваш запрос выглядит странно, можете ли вы показать структуру таблицы и объяснить, как квитанция относится к платежам за разные месяцы.

2 Ответов

Рейтинг:
20

OriginalGriff

Вы имеете в виду

... WHERE ReceiptNo='AIS/16-17/00096' GROUP BY ... HAVING SUM (Apr + May+Jun+Jul+Aug+Sep+Oct+Nov+[Dec]+Jan+Feb+Mar) > 0

Но...Вы же понимаете, что каждое предложение в группе на увеличивает количество генерируемых отдельных групп, не так ли? При использовании нескольких полей группировки SQL создает группу для каждой строки с различными значениями в любом из именованных полей. И с учетом количества полей в вашей группе BY, я подозреваю, что вы получите отдельную группу для каждой строки во входной таблице...


Рейтинг:
2

Vaibhav-Systematix

вы можете попробовать с нижеприведенным запросом


Выберите * из (
выберите ReceiptNo, S_Adm_No, paid_date, S_Adm_No, Class, S_Name, S_F_Name, Mode_Payment,ChqNo, ChqDated, bank_Name, For_the_Month ,
FHeadId, FHead, штраф, TotalAmount, концессия, payableAmount, SUM (isnull(Apr, 0) + isnull(May, 0) +isnull(Jun,0)+isnull(Jul,0)+isnull(Aug,0)+isnull(Sep,0)+isnull(Oct,0)+isnull(Nov,0)+isnull([Dec],0)+isnull(Jan,0)+isnull(Feb,0)+isnull(Mar,0)) в качестве гонорара
from View_Fee_Receipt_Students where ReceiptNo= 'AIS/16-17/00096' group by ReceiptNo,
S_Adm_No, paid_date, S_Adm_No, Class, S_Name, S_F_Name, Mode_Payment,ChqNo, ChqDated, bank_Name, For_the_Month ,
Штраф, TotalAmount, FHeadId, FHead, концессия, payableAmount) в результате

Где плата > 0