on 2017 Dec 11 11:00 AM
given a date like '2017-12-10' I know how to query for previous month's min amount with the corresponding date:
Begin
declare a_dt date declare dt1 date declare dt2 date
select select amt, valuation_dt, 'min in the mth' 'note' from dba.summary_by_fin_grp where fi_group_cd='RBCFG' and valuation_dt between '2017-11-01' and '2017-11-30 23:59:59.999' and net_ValueWOBankAcct = (select min(net_ValueWOBankAcct) from dba.summary_by_fin_grp where fi_group_cd='RBCFG' and valuation_dt between '2017-11-01' and '2017-11-30 23:59:59.999')
I know also I can loop with
while expr begin ... end Now how do go about returning min value with the date for each month in n last previous months without hard-coding with aid of c#
please note I will eventually like to list also the max value
I also tried the analytic function with over ( partition by..) but I only get one single min value throughout the last 5 months
SELECT net_ValueWOBankAcct as amt , valuation_dt , min_in_month , YearMth FROM ( SELECT net_ValueWOBankAcct as amt , valuation_dt , net_ValueWOBankAcct , year(valuation_dt)+ month(valuation_dt) as yearMth , MIN(net_ValueWOBankAcct) OVER (PARTITION BY YearMth) AS min_in_month FROM dba.pf_dailyvaluation_summary_by_fin_grp WHERE fi_group_cd = 'RBCFG' AND valuation_dt >= '2017-11-01' AND valuation_dt < '2017-12-01' ) d WHERE net_ValueWOBankAcct = min_in_month
that seem to work. I guess I can repeat that for max__in_month in a union along with some note that is a min for the month.
however I need to list that along with the min_month and I have toruble getting the corresponding date
your help is apprecated
Request clarification before answering.
User | Count |
---|---|
48 | |
6 | |
6 | |
5 | |
4 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.