Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

sql filtering results of alias column [duplicate]

Tags:

sql

sql-server

How can we filter for an Alias name? For example, in query below, for alias OLB, if we want to say WHERE OLB > 0

SELECT
loan.lnr
,loan.lamount - SUM (memrepay.mprinc) AS OLB
,lstatus

FROM
 loan
  LEFT OUTER JOIN memrepay
  ON loan.lnr = memrepay.lnr

WHERE
loan.tstart >= N'2013-07-07T14:00:00' 

GROUP BY loan.lnr, lamount, lstatus

Order By lnr
like image 653
sqluser Avatar asked Sep 05 '25 01:09

sqluser


1 Answers

Use Derived table

select t.* from
(
SELECT
loan.lnr
,loan.lamount - SUM (memrepay.mprinc) AS OLB
,lstatus

FROM
 loan
  LEFT OUTER JOIN memrepay
  ON loan.lnr = memrepay.lnr

WHERE
loan.tstart >= N'2013-07-07T14:00:00' 

GROUP BY loan.lnr, lamount, lstatus
) as t where OLB>0
Order By lnr

or use HAVING clause and use the expression

SELECT
loan.lnr
,loan.lamount - SUM (memrepay.mprinc) AS OLB
,lstatus

FROM
 loan
  LEFT OUTER JOIN memrepay
  ON loan.lnr = memrepay.lnr
WHERE
loan.tstart >= N'2013-07-07T14:00:00' 

GROUP BY loan.lnr, lamount, lstatus
HAVING loan.lamount - SUM (memrepay.mprinc) >0
Order By lnr
like image 115
Madhivanan Avatar answered Sep 07 '25 15:09

Madhivanan