Eventuali duplicati:
Referring to a Column Alias in a WHERE ClauseCome utilizzo la clausola alias in where?
SELECT
Trade.TradeId,
Isnull(Securities.SecurityType,'Other') SecurityType,
TableName,
CASE
WHEN
SecurityTrade.SecurityId IS NOT NULL
THEN
SecurityTrade.SecurityId
ELSE
Trade.SecurityId
END AS PricingSecurityID,
sum(Trade.Quantity)OVER(Partition by Securities.SecurityType, SecurityTrade.SecurityId,Trade.Price, Buy,Long) as sumQuantity,
--added porfolio id for Getsumofqantity
Trade.PortfolioId,
Trade.Price,
case
when (Buy = 1 and Long = 1) then 1
when (Buy = 0 and Long = 0) then 1
else 0
end Position
from
Fireball_Reporting..Trade
where porfolioid =5 and Position =1
voglio usare Posizione = 1 nel mio clausola where, che è un alias del caso
case
when (Buy = 1 and Long = 1) then 1
when (Buy = 0 and Long = 0) then 1
else 0
end Position
COME POSSO usarlo in dove clausola?
ho provato direttamente utilizzare questa dichiarazione CASE in cui la clausola, ma non è riuscito ti prego, aiutami
WHERE Trade.SecurityId = @SecurityId AND PortfolioId = @GHPortfolioID AND
(case when (Buy = 1 and Long = 1) then 1 when (Buy = 0 and Long = 0) then 1 else 0 end Position = 1)
Non è possibile se non si aggiunge un'altra selezione e si verifica postion = 1 sulla query esterna. –
Quale linguaggio SQL stai usando? – StingyJack
T SQL in sql server 2008 – Neo