SQL查询 - 具有表达式> 0

时间:2015-09-15 09:31:13

标签: sql sql-server having

我正在使用Microsoft SQL Server 2014,并且我有以下SQL查询:

SELECT 
    h.entidade, h.datadoc, h.tipodoc, h.numdoc,
    (SELECT valortotal -
         (SELECT COALESCE(SUM(l.valorrec), 0) 
          FROM LinhasLiq as l
          INNER JOIN cabliq ON l.IdCabLiq = CabLiq.id
          INNER JOIN Historico ON L.IdHistorico = Historico.id
          WHERE cabliq.DataDoc < '01/05/2015'
            AND historico.id = h.id)) as 'valor pendente',  
    coalesce(documentosCCT.Descricao,'')
+' '+ CASE WHEN h.modulo<>'V' THEN coalesce(documentosVenda.Descricao,'') else'' END 
+' '+  coalesce(h.descricao,'') AS descricaogeral   
FROM 
    Historico h 
LEFT JOIN 
    documentosCCT ON h.TipoDoc = documentosCCT.Documento  
LEFT JOIN 
    documentosVenda ON h.Tipodoc = documentosVenda.Documento
WHERE
    h.entidade = 'ta0141' AND
    (h.tipoentidade = 'C' OR h.tipoentidade = 'F') 
ORDER BY 
    datadoc ASC

和这个特定的表达

(select valortotal - (SELECT COALESCE(SUM(l.valorrec),0) from LinhasLiq as l
    inner join cabliq on l.IdCabLiq = CabLiq.id
    inner join Historico on L.IdHistorico = Historico.id
    where cabliq.DataDoc < '01/05/2015' and historico.id = h.id)) as 'valor pendente'

返回很多0值,那么如何将整个表达式放在有X&gt; 0条款,或任何其他方式,只要具有此表达式= 0的行不显示?

非常感谢。

1 个答案:

答案 0 :(得分:1)

如果可行尝试在单select语句中进行查询而不是多个,我不知道你的情况是什么 不要将别名valor pendente设为valorpendente

现在您可以使用CTE

;WITH CTE AS
(
-- YOUR QUERY
)

SELECT * FROM CTE
WHERE valorpendente > 0