-5

更新された質問:

ALTER PROC Proc_Test
(
    @GrpBy as varchar(20) 
)
AS
Declare @TableTax table(
Taxid int,
TaxRange nvarchar(20),
MinLimit int,
MaxLimit int
)

SELECT t1.*     
FROM 
(
    SELECT  
        GroupBy = CASE @GrpBy 
                    WHEN 'JobGrade' THEN Employee.Grade                 
                    WHEN 'Tax Slab' THEN tblTax.TaxRange
                  END, (20 more calculated columns)
    FROM @TableTax AS tblTax, Employee
        LEFT JOIN Grade on Grade.Grade = Employee.Grade     
    WHERE
    Employee.Salary between tblTax.MinLimit and tblTax.Maxlimit     
    GROUP BY    
        CASE @GrpBy
                    WHEN 'JobGrade' THEN Employee.Grade                 
                    WHEN 'Tax Slab' THEN tblTax.TaxRange
                  END   
) AS t1
ORDER BY GroupBy

結果を TaxId で並べ替えたい。この順序は、Tax Slab がフロントエンドで選択されている場合にのみ適用されます。

4

2 に答える 2

3

これを試して:

SELECT t1.* FROM t1
INNER JOIN t2
ON t1.JoinColumn = t2.JoinColumn
ORDER BY t2.SortColumn
于 2012-09-14T14:04:02.750 に答える
2

「where」句を追加する必要があります

Select t1.* from t1, t2 where t1.somefield = t2.otherfield order by t2.sortfield
于 2012-09-14T13:49:31.777 に答える