在一个简单的查询中,我有一个具有以下结构的表:
SELECT * FROM [SAMX].[dbo].[REPORTE_ESTADO_CUENTA_GLOBAL] where intencion_id=1657 ORDER BY intencion_id,fecha
我需要用“0”或“1”填充帐户列,具体取决于查询是否包含合同的初始费用,如下所示: - 如果不包含,则帐户必须为“0” - 如果包含,您必须检查该记录的状态 - 如果状态为“C”,帐户仍应为“0” - 如果状态为“”,帐户应为“1”,之后的所有记录,帐户应为“1”
我尝试使用变量,但无法将SELECT
值赋值与数据提取结合起来。
DECLARE @var1 int;
select @var1=0;
SELECT @var1=(CASE tipomovimiento WHEN 'Cargo Inicial del Contrato' THEN 1 ELSE 0 END)
,@var1 AS cuenta,[fecha],[tipomovimiento],[abono],[cargo],[estatus],[intencion_id] FROM REPORTE_ESTADO_CUENTA_GLOBAL where intencion_id=1657 ORDER BY intencion_id,fecha
你能给我一个解决方案吗?
好的,一个
LEFT JOIN
和一个表达式CASE
应该可以工作: