Consider a table like
debit credit code
-----------------------------
0 10 5
5 0 3
0 11 2
0 15
You can use this.
DECLARE @MyTable TABLE(debit INT, credit INT, code INT)
INSERT INTO @MyTable VALUES
(0, 10, 5),
(5, 0 , 3),
(0, 11, 2),
(0, 15, 1),
(7, 0 , 6),
(6, 0 , 2),
(5, 0 , 1)
SELECT * FROM
@MyTable
ORDER BY
(CASE WHEN debit > 0 THEN 0 ELSE 1 END) ,
code ,
debit
Result:
debit credit code
----------- ----------- -----------
5 0 1
6 0 2
5 0 3
7 0 6
0 15 1
0 11 2
0 10 5
Use this select to help you:
SELECT debit, code, credit
FROM table a
WHERE debit > 0
or debit = 0
order by debit code, credit desc
or
SELECT debit, code, credit
FROM table a
WHERE debit > 0
or debit = 0
group by debit, code, credit
order by debit code, credit desc
;WITH Props AS
(
SELECT *,
ROW_NUMBER() OVER (ORDER BY c,cc) AS RowNumber
FROM Location
)
select * from Props order by d desc,RowNumber
Try the above code
WOrking fiddle here
Please use below one in order by clause
you will get the output that you are looking for
order by cast(cast(code as varchar(50))
+ cast(debit as varchar(2)+ cast(credit as varchar(2) as int)