您好我有一个MySQL表与这些五列评估与mySQL的SELECT CASE色谱柱并返回三列作为结果
1)ValidationSTS 2)Comprobante_Tipo_Comprobante 3)Comprobante_Subtotal 4)Impuesto_Trasladado 5)Comprobante_Total
因此,我需要评估第一个ValidationSTS,当等于“Cancelado”,然后乘以零,以获得零作为结果 Case Else然后传递给嵌套的SELECT CASE。
在嵌套的SELECT CASE I eval“Comprobante_Tipo_Comprobante”中,然后评估两种情况:“ingreso”和“egreso”。 当Case等于“ingreso”时,结果将是“Comprobante_Subtotal”列 当Case等于“egreso”时,结果为“Comprobante_Subtotal”列为负值。
所以这是我的代码,并返回一个列结果:
SELECT
CASE ValidationSts WHEN 'Cancelado' THEN 0*Comprobante_Subtotal
ELSE
CASE WHEN Comprobante_Tipo_de_Comprobante = 'egreso' THEN -1*Comprobante_Subtotal WHEN Comprobante_Tipo_de_Comprobante='ingreso' THEN Comprobante_Subtotal END
END
FROM facturas_recibidas WHERE Receptor_RFC= 'RFC' AND Emisor_RFC='RFCList' AND Comprobante_Fecha BETWEEN 'srchFechaInicial.SQLDate + " 00:00:00.000' AND
srchFechaFinal.SQLDate + " 23:59.59.997'
ORDER BY Comprobante_Fecha ASC"
正如我所说的,它的工作原理,但只能返回一列作为结果。
但是如果我想返回三列呢? 例如:Comprobante_Subtotal,Impuesto和Comprobante_Total,并采用与Comprobante_subtotal相同的处理方式。
我试过用AND和用逗号分割失败。 :(
任何线索 问候
我不是英国本地人,我是一个像你一样的拉丁人。但我只想说恕我直言,西班牙语单词的字段和变量名称的使用不会帮助其他非拉丁语在您的代码中找到含义。所以,即使这个问题可以很好,你也可以得到一些好的答案。 – dparoli