获得具有动态数据的Qurter明智数据

时间:2019-02-18 07:37:55

标签: sql sql-server sql-server-2008

我有一个表,其列名称为季度,年份,预算值和其他。我想按季度和年度描述来获取值。条件是,如果季度大于4,则应该在那里进行分组。

我的数据像这样

我使用了以下查询:

ALTER PROCEDURE USP_EDELGIVE_GETBUDGET_DATA --47
(
 @RFP_ID INT 
)
AS
BEGIN
DECLARE @ROWCOUNT INT , @ROWID INT , @MAXQUATERCOUNT INT, @MAXQUATER_ROWID INT


DECLARE @SUMMARYMASTER TABLE (
              ID int identity(1,1),
              SUM_ID INT ,
              SUM_DESC NVARCHAR(500)
       )

   DECLARE @QUATERDATA TABLE (
          ID INT IDENTITY(1,1) ,
          DENS_ID INT,
          BUDGETID INT,
          RFPID VARCHAR(100),
          NGOID VARCHAR(100),
          DESC_ID INT,
          SUM_DESCRIPTION NVARCHAR(300),
          QAURTER VARCHAR(200),
          B_YEAR VARCHAR(200),
          B_TYPE VARCHAR(200),
          QUARTERVAL VARCHAR(200),
          BUDGETVAL VARCHAR(200),
          FROMYEAR VARCHAR(200),
          TOYEAR VARCHAR(200),
          FULLYEAR VARCHAR(200)
   )

   DECLARE @ACTUALDATA TABLE (
          ID INT IDENTITY(1,1) ,
          BUDGETID INT,
          RFPID VARCHAR(100),
          NGOID VARCHAR(100),
          DESC_ID INT,
          SUM_DESCRIPTION NVARCHAR(300),
          QAURTER VARCHAR(200),
          B_YEAR VARCHAR(200),
          B_TYPE VARCHAR(200),
          QUARTERVAL VARCHAR(200),
          BUDGETVAL VARCHAR(200),
          FROMYEAR VARCHAR(200),
          TOYEAR VARCHAR(200),
          FULLYEAR VARCHAR(200)
   )
   INSERT INTO @SUMMARYMASTER(SUM_ID,SUM_DESC)
   SELECT DISTINCT SUM_ID,SUM_DESCRIPTION FROM EDELGIVE_BUDGET_SUMARYMASTER
   WHERE B_TYPE='SUMMARY-2'




   SELECT @MAXQUATERCOUNT =  MAX(X.QAURTER) from (select CAST(RTRIM(LTRIM(SUBSTRING(BUD.QAURTER,CHARINDEX('Q', BUD.QAURTER)+1,CHARINDEX('Q', BUD.QAURTER)+1))) AS INT) as QAURTER,
   BUD.DESC_ID
   from EDELGIVE_BUDGET_SUMMARY_1 BUD
   INNER JOIN EDELGIVE_BUDGET_SUMARYMASTER SM ON BUD.DESC_ID=SM.SUM_ID
   where BUD.rfpid=@RFP_ID )
   X
   group by X.DESC_ID 
   order by X.DESC_ID 


   insert into @QUATERDATA(dens_id,BUDGETID,RFPID,NGOID,DESC_ID,SUM_DESCRIPTION,QAURTER,
   B_YEAR,B_TYPE,QUARTERVAL,BUDGETVAL,FROMYEAR,TOYEAR,FULLYEAR)
   SELECT 
   DENSE_RANK() OVER(ORDER BY  X.QAURTER ASC) DENSEROWID,
          X.BUDGETID,X.RFPID,X.NGOID,X.DESC_ID,X.SUM_DESCRIPTION,
          X.QAURTERS,X.B_YEAR,X.B_TYPE,X.QUARTERVAL,X.BUDGETVAL,X.FROMYEAR,X.TOYEAR,X.FULLYEAR
   FROM 
   (SELECT 
          CAST(RTRIM(LTRIM(SUBSTRING(BUD.QAURTER,CHARINDEX('Q', BUD.QAURTER)+1,CHARINDEX('Q', BUD.QAURTER)+1))) AS INT) AS QAURTER,
          BUD.BUDGETID,
          BUD.RFPID,    BUD.NGOID,    BUD.DESC_ID   ,SM.SUM_DESCRIPTION,QAURTER AS QAURTERS,       BUD.B_YEAR,   BUD.B_TYPE,   QUARTERVAL,   BUDGETVAL,
          FROMYEAR,     TOYEAR,FROMYEAR+'TO'+TOYEAR AS FULLYEAR
   FROM EDELGIVE_BUDGET_SUMMARY_1 BUD
   INNER JOIN EDELGIVE_BUDGET_SUMARYMASTER SM ON BUD.DESC_ID=SM.SUM_ID
   WHERE BUD.RFPID=47
   )X
   ORDER BY X.DESC_ID , X.B_YEAR , X.QAURTER
  select * from @QUATERDATA

   SET @MAXQUATER_ROWID= 1
   SET @ROWID = 1       
   DECLARE @SUM_ID INT,@DENSE_ROWID INT       
   select @ROWCOUNT = COUNT(*) from @SUMMARYMASTER
   SET @DENSE_ROWID = 1;
   WHILE @MAXQUATERCOUNT >= @MAXQUATER_ROWID
   BEGIN

          SET @ROWID = 1
          WHILE @ROWCOUNT >= @ROWID
          BEGIN    
                 SELECT @SUM_ID = SUM_ID  FROM @SUMMARYMASTER WHERE ID=@ROWID
                 --@ACTUALDATA        
                 INSERT INTO @ACTUALDATA(BUDGETID,RFPID,NGOID,DESC_ID,SUM_DESCRIPTION,QAURTER,
                 B_YEAR,B_TYPE,QUARTERVAL,BUDGETVAL,FROMYEAR,TOYEAR,FULLYEAR)
                 SELECT TOP 4 BUDGETID,RFPID,NGOID,DESC_ID,SUM_DESCRIPTION,QAURTER,
                 B_YEAR,B_TYPE,QUARTERVAL,BUDGETVAL,FROMYEAR,TOYEAR,FULLYEAR FROM @QUATERDATA 
                 WHERE DENS_ID >= @DENSE_ROWID AND DESC_ID=@SUM_ID

                 SET @ROWID = @ROWID +1
          END

                 SET @MAXQUATER_ROWID = @MAXQUATER_ROWID + 1
                 SET @DENSE_ROWID = @DENSE_ROWID + 4;


   END

          SELECT * FROM @ACTUALDATA
            Select @MAXQUATERCOUNT
END

获取的数据:

ID  BUDGETID    RFPID   NGOID   DESC_ID SUM_DESCRIPTION QAURTER B_YEAR  B_TYPE  QUARTERVAL  BUDGETVAL
1   4799    47  152 1   1.1 Salaries-Program management staff   Q1  Year-1  2   Apr-17 to may-17    81000
2   4800    47  152 1   1.1 Salaries-Program management staff   Q2  Year-1  2   Jun-17 to july-17   81000
3   4798    47  152 1   1.1 Salaries-Program management staff   Q3  Year-1  2   Aug-17 to Sep-17    81000
4   4797    47  152 1   1.1 Salaries-Program management staff   Q4  Year-1  2   Oct-18 to Nov-18    81000
5   4762    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q1  Year-1  2   Apr-17 to may-17    381000
6   4761    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q2  Year-1  2   Jun-17 to july-17   381000
7   4763    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q3  Year-1  2   Aug-17 to Sep-17    381000
8   4764    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q4  Year-1  2   Oct-18 to Nov-18    196000
9   4759    47  152 3   1.3 Other HR Costs  Q1  Year-1  2   Apr-17 to may-17    0
10  4760    47  152 3   1.3 Other HR Costs  Q2  Year-1  2   Jun-17 to july-17   0
11  4758    47  152 3   1.3 Other HR Costs  Q3  Year-1  2   Aug-17 to Sep-17    0
12  4757    47  152 3   1.3 Other HR Costs  Q4  Year-1  2   Oct-18 to Nov-18    0
193 4796    47  152 1   1.1 Salaries-Program management staff   Q5  Year-1  2   Dec-18 to Mar-18    81000
194 4795    47  152 1   1.1 Salaries-Program management staff   Q6  Year-2  2   Apr-18 to Jun-18    405000
195 4794    47  152 1   1.1 Salaries-Program management staff   Q7  Year-2  2   Jul-18 to Sep-18    89100
196 4793    47  152 1   1.1 Salaries-Program management staff   Q8  Year-2  2   Jan-19 to Mar-19    89100
197 4765    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q5  Year-1  2   Dec-18 to Mar-18    196000
198 4766    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q6  Year-2  2   Apr-18 to Jun-18    1535000
199 4767    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q7  Year-2  2   Jul-18 to Sep-18    419100
200 4768    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q8  Year-2  2   Jan-19 to Mar-19    215600
201 4756    47  152 3   1.3 Other HR Costs  Q5  Year-1  2   Dec-18 to Mar-18    0
202 4755    47  152 3   1.3 Other HR Costs  Q6  Year-2  2   Apr-18 to Jun-18    0
203 4754    47  152 3   1.3 Other HR Costs  Q7  Year-2  2   Jul-18 to Sep-18    0
204 4753    47  152 3   1.3 Other HR Costs  Q8  Year-2  2   Jan-19 to Mar-19    0
385 4792    47  152 1   1.1 Salaries-Program management staff   Q9  Year-3  2   Apr-19 to Jun-19    98010
386 4791    47  152 1   1.1 Salaries-Program management staff   Q10 Year-3  2   Jul-19 to Sep-19    98010
387 4790    47  152 1   1.1 Salaries-Program management staff   Q11 Year-3  2   Oct-19 to Dec-19    98010
388 4789    47  152 1   1.1 Salaries-Program management staff   Q12 Year-3  2   Jan-20 to Mar-20    98010
389 4769    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q9  Year-3  2   Apr-19 to Jun-19    461010
390 4770    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q10 Year-3  2   Jul-19 to Sep-19    461010
391 4771    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q11 Year-3  2   Oct-19 to Dec-19    461010
392 4772    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q12 Year-3  2   Jan-20 to Mar-20    237160
393 4752    47  152 3   1.3 Other HR Costs  Q9  Year-3  2   Apr-19 to Jun-19    0
394 4751    47  152 3   1.3 Other HR Costs  Q10 Year-3  2   Jul-19 to Sep-19    0
395 4750    47  152 3   1.3 Other HR Costs  Q11 Year-3  2   Oct-19 to Dec-19    0
396 4749    47  152 3   1.3 Other HR Costs  Q12 Year-3  2   Jan-20 to Mar-20    0
577 4788    47  152 1   1.1 Salaries-Program management staff   Q13 Year-4  2       0
578 4787    47  152 1   1.1 Salaries-Program management staff   Q14 Year-4  2       0
579 4786    47  152 1   1.1 Salaries-Program management staff   Q15 Year-4  2       0
580 4783    47  152 1   1.1 Salaries-Program management staff   Q16 Year-4  2       0
581 4773    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q13 Year-4  2       0
582 4774    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q14 Year-4  2       0
583 4775    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q15 Year-4  2       0
584 4778    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q16 Year-4  2       0
585 4748    47  152 3   1.3 Other HR Costs  Q13 Year-4  2       0
586 4747    47  152 3   1.3 Other HR Costs  Q14 Year-4  2       0
587 4746    47  152 3   1.3 Other HR Costs  Q15 Year-4  2       0
588 4743    47  152 3   1.3 Other HR Costs  Q16 Year-4  2       0
769 4784    47  152 1   1.1 Salaries-Program management staff   Q17 Year-5  2       0
770 4785    47  152 1   1.1 Salaries-Program management staff   Q18 Year-5  2       0
771 4782    47  152 1   1.1 Salaries-Program management staff   Q19 Year-5  2       0
772 4781    47  152 1   1.1 Salaries-Program management staff   Q20 Year-5  2       0
773 4777    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q17 Year-5  2       0
774 4776    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q18 Year-5  2       0
775 4779    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q19 Year-5  2       0
776 4780    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q20 Year-5  2       0
777 4744    47  152 3   1.3 Other HR Costs  Q17 Year-5  2       0
778 4745    47  152 3   1.3 Other HR Costs  Q18 Year-5  2       0
779 4742    47  152 3   1.3 Other HR Costs  Q19 Year-5  2       0
780 4741    47  152 3   1.3 Other HR Costs  Q20 Year-5  2       0

预期结果:

ID  BUDGETID    RFPID   NGOID   DESC_ID SUM_DESCRIPTION QAURTER B_YEAR  B_TYPE  QUARTERVAL  BUDGETVAL
1   4799    47  152 1   1.1 Salaries-Program management staff   Q1  Year-1  2   Apr-17 to may-17    81000
2   4800    47  152 1   1.1 Salaries-Program management staff   Q2  Year-1  2   Jun-17 to july-17   81000
3   4798    47  152 1   1.1 Salaries-Program management staff   Q3  Year-1  2   Aug-17 to Sep-17    81000
4   4797    47  152 1   1.1 Salaries-Program management staff   Q4  Year-1  2   Oct-18 to Nov-18    81000
5   4762    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q1  Year-1  2   Apr-17 to may-17    381000
6   4761    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q2  Year-1  2   Jun-17 to july-17   381000
7   4763    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q3  Year-1  2   Aug-17 to Sep-17    381000
8   4764    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q4  Year-1  2   Oct-18 to Nov-18    196000
9   4759    47  152 3   1.3 Other HR Costs  Q1  Year-1  2   Apr-17 to may-17    0
10  4760    47  152 3   1.3 Other HR Costs  Q2  Year-1  2   Jun-17 to july-17   0
11  4758    47  152 3   1.3 Other HR Costs  Q3  Year-1  2   Aug-17 to Sep-17    0
12  4757    47  152 3   1.3 Other HR Costs  Q4  Year-1  2   Oct-18 to Nov-18    0
193 4796    47  152 1   1.1 Salaries-Program management staff   Q5  Year-1  2   Dec-18 to Mar-18    81000
197 4765    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q5  Year-1  2   Dec-18 to Mar-18    196000
201 4756    47  152 3   1.3 Other HR Costs  Q5  Year-1  2   Dec-18 to Mar-18    0
194 4795    47  152 1   1.1 Salaries-Program management staff   Q6  Year-2  2   Apr-18 to Jun-18    405000
195 4794    47  152 1   1.1 Salaries-Program management staff   Q7  Year-2  2   Jul-18 to Sep-18    89100
196 4793    47  152 1   1.1 Salaries-Program management staff   Q8  Year-2  2   Jan-19 to Mar-19    89100
198 4766    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q6  Year-2  2   Apr-18 to Jun-18    1535000
199 4767    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q7  Year-2  2   Jul-18 to Sep-18    419100
200 4768    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q8  Year-2  2   Jan-19 to Mar-19    215600
202 4755    47  152 3   1.3 Other HR Costs  Q6  Year-2  2   Apr-18 to Jun-18    0
203 4754    47  152 3   1.3 Other HR Costs  Q7  Year-2  2   Jul-18 to Sep-18    0
204 4753    47  152 3   1.3 Other HR Costs  Q8  Year-2  2   Jan-19 to Mar-19    0
385 4792    47  152 1   1.1 Salaries-Program management staff   Q9  Year-3  2   Apr-19 to Jun-19    98010
386 4791    47  152 1   1.1 Salaries-Program management staff   Q10 Year-3  2   Jul-19 to Sep-19    98010
387 4790    47  152 1   1.1 Salaries-Program management staff   Q11 Year-3  2   Oct-19 to Dec-19    98010
388 4789    47  152 1   1.1 Salaries-Program management staff   Q12 Year-3  2   Jan-20 to Mar-20    98010
389 4769    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q9  Year-3  2   Apr-19 to Jun-19    461010
390 4770    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q10 Year-3  2   Jul-19 to Sep-19    461010
391 4771    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q11 Year-3  2   Oct-19 to Dec-19    461010
392 4772    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q12 Year-3  2   Jan-20 to Mar-20    237160
393 4752    47  152 3   1.3 Other HR Costs  Q9  Year-3  2   Apr-19 to Jun-19    0
394 4751    47  152 3   1.3 Other HR Costs  Q10 Year-3  2   Jul-19 to Sep-19    0
395 4750    47  152 3   1.3 Other HR Costs  Q11 Year-3  2   Oct-19 to Dec-19    0
396 4749    47  152 3   1.3 Other HR Costs  Q12 Year-3  2   Jan-20 to Mar-20    0
385 4792    47  152 1   1.1 Salaries-Program management staff   Q9  Year-3  2   Apr-19 to Jun-19    98010
389 4769    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q9  Year-3  2   Apr-19 to Jun-19    461010
393 4752    47  152 3   1.3 Other HR Costs  Q9  Year-3  2   Apr-19 to Jun-19    0
577 4788    47  152 1   1.1 Salaries-Program management staff   Q13 Year-4  2       0
578 4787    47  152 1   1.1 Salaries-Program management staff   Q14 Year-4  2       0
579 4786    47  152 1   1.1 Salaries-Program management staff   Q15 Year-4  2       0
580 4783    47  152 1   1.1 Salaries-Program management staff   Q16 Year-4  2       0
581 4773    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q13 Year-4  2       0
582 4774    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q14 Year-4  2       0
583 4775    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q15 Year-4  2       0
584 4778    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q16 Year-4  2       0
585 4748    47  152 3   1.3 Other HR Costs  Q13 Year-4  2       0
586 4747    47  152 3   1.3 Other HR Costs  Q14 Year-4  2       0
587 4746    47  152 3   1.3 Other HR Costs  Q15 Year-4  2       0
588 4743    47  152 3   1.3 Other HR Costs  Q16 Year-4  2       0
769 4784    47  152 1   1.1 Salaries-Program management staff   Q17 Year-5  2       0
770 4785    47  152 1   1.1 Salaries-Program management staff   Q18 Year-5  2       0
771 4782    47  152 1   1.1 Salaries-Program management staff   Q19 Year-5  2       0
772 4781    47  152 1   1.1 Salaries-Program management staff   Q20 Year-5  2       0
773 4777    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q17 Year-5  2       0
774 4776    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q18 Year-5  2       0
775 4779    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q19 Year-5  2       0
776 4780    47  152 2   1.2 Salaries-Field staff, outreach workers, medical staff and other service providers   Q20 Year-5  2       0
777 4744    47  152 3   1.3 Other HR Costs  Q17 Year-5  2       0
778 4745    47  152 3   1.3 Other HR Costs  Q18 Year-5  2       0
779 4742    47  152 3   1.3 Other HR Costs  Q19 Year-5  2       0
780 4741    47  152 3   1.3 Other HR Costs  Q20 Year-5  2       0

enter image description here

1 个答案:

答案 0 :(得分:0)

DECLARE @QUATERDATA TABLE (
              ID INT IDENTITY(1,1) ,
              -- gid int,
              DENS_ID INT,
              BUDGETID INT,
              RFPID VARCHAR(100),
              NGOID VARCHAR(100),
              DESC_ID INT,
              SUM_DESCRIPTION NVARCHAR(300),
              QAURTER VARCHAR(200),
              B_YEAR VARCHAR(200),
              B_TYPE VARCHAR(200),
              QUARTERVAL VARCHAR(200),
              BUDGETVAL VARCHAR(200),
              FROMYEAR VARCHAR(200),
              TOYEAR VARCHAR(200),
              FULLYEAR VARCHAR(200)
       )
       DECLARE @ACTUALDATA TABLE (
              ID INT IDENTITY(1,1) ,
              BUDGETID INT,
              RFPID VARCHAR(100),
              NGOID VARCHAR(100),
              DESC_ID INT,
              SUM_DESCRIPTION NVARCHAR(300),
              QAURTER VARCHAR(200),
              B_YEAR VARCHAR(200),
              B_TYPE VARCHAR(200),
              QUARTERVAL VARCHAR(200),
              BUDGETVAL VARCHAR(200),
              FROMYEAR VARCHAR(200),
              TOYEAR VARCHAR(200),
              FULLYEAR VARCHAR(200)
       )

 insert into @QUATERDATA(RFPID,NGOID,DESC_ID,SUM_DESCRIPTION,QAURTER,
       B_YEAR,B_TYPE,QUARTERVAL,BUDGETVAL,FROMYEAR,TOYEAR,FULLYEAR)
       SELECT RFPID, NGOID, DESC_ID ,SM.SUM_DESCRIPTION,QAURTER, EDELGIVE_BUDGET_SUMMARY_1.B_YEAR, EDELGIVE_BUDGET_SUMMARY_1.B_TYPE, QUARTERVAL, BUDGETVAL,  
 FROMYEAR, TOYEAR,FROMYEAR+'to'+TOYEAR as FULLYEAR FROM  EDELGIVE_BUDGET_SUMMARY_1  
 INNER JOIN EDELGIVE_BUDGET_SUMARYMASTER SM ON EDELGIVE_BUDGET_SUMMARY_1.DESC_ID=SM.SUM_ID  
 where rfpid=61  
 order by B_YEAR,DESC_ID,len(QAURTER),QAURTER



 select d   ,ID DENS_ID,    BUDGETID,   RFPID,  NGOID   ,DESC_ID,   SUM_DESCRIPTION,    QAURTER,    B_YEAR  ,B_TYPE ,QUARTERVAL ,BUDGETVAL  ,FROMYEAR,  TOYEAR, FULLYEAR
 from(
 SELECT  (row_number() over (partition by B_YEAR,DESC_ID   order by len(QAURTER)) + 3) / 4 as d,* from @QUATERDATA
 )a
  order by B_YEAR,d,DESC_ID,len(QAURTER),QAURTER