更新的问题:
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的情况。
答案 0 :(得分:2)
您应该添加“where”子句
Select t1.* from t1, t2 where t1.somefield = t2.otherfield order by t2.sortfield
答案 1 :(得分:1)
试试这个:
SELECT t1.* FROM t1
INNER JOIN t2
ON t1.JoinColumn = t2.JoinColumn
ORDER BY t2.SortColumn