problema de sintaxis

28/05/2006 - 01:33 por Jose Nunez | Informe spam
El problema que tengo seguramente es facil de implementar pero yo no logro
que funcione en SQL Server.

Supongamos que tengo 3 campos numericos A, B, C.
Yo quiero obtener la suma para todos los registros de A * (B / C)
Dado que C podria valer cero, y por tanto daria error de division por cero,
necesito controlar esa situacion.

La siguiente sintaxis no me funciona:

SELECT sum(A*IIF(C<>0,B/C,1)) AS X FROM tbl01

Les agradezco si me pueden decir cual deberia ser la sintaxis correcta.

Gracias.
Saludos.
Jose Nuñez
Montevideo

Preguntas similare

Leer las respuestas

#1 BitOne®
28/05/2006 - 06:45 | Informe spam
select case
when c <> 0 then a * ( b / c )
end expresion

en vez de la expresion iff() utilizas case when the else end;

Saludos



-
BitOne®

http://www.yocsql.com

-



"Jose Nunez" escribió en el mensaje news:
El problema que tengo seguramente es facil de implementar pero yo no logro
que funcione en SQL Server.

Supongamos que tengo 3 campos numericos A, B, C.
Yo quiero obtener la suma para todos los registros de A * (B / C)
Dado que C podria valer cero, y por tanto daria error de division por cero,
necesito controlar esa situacion.

La siguiente sintaxis no me funciona:

SELECT sum(A*IIF(C<>0,B/C,1)) AS X FROM tbl01

Les agradezco si me pueden decir cual deberia ser la sintaxis correcta.

Gracias.
Saludos.
Jose Nuñez
Montevideo


Respuesta Responder a este mensaje
#2 Jorge Gonzalez
29/05/2006 - 19:59 | Informe spam
Vale la respuesta de BitOne

pero para ser más específico, tu consulta quedaría como sigue:

SELECT sum(A* (case when C<>0 Then B/C Else 1 End) ) AS X
FROM tbl01

saludos

Jorge González

"Jose Nunez" escribió en el mensaje
news:
El problema que tengo seguramente es facil de implementar pero yo no logro
que funcione en SQL Server.

Supongamos que tengo 3 campos numericos A, B, C.
Yo quiero obtener la suma para todos los registros de A * (B / C)
Dado que C podria valer cero, y por tanto daria error de division por
cero, necesito controlar esa situacion.

La siguiente sintaxis no me funciona:

SELECT sum(A*IIF(C<>0,B/C,1)) AS X FROM tbl01

Les agradezco si me pueden decir cual deberia ser la sintaxis correcta.

Gracias.
Saludos.
Jose Nuñez
Montevideo

Respuesta Responder a este mensaje
#3 Jose Nunez
29/05/2006 - 23:27 | Informe spam
Gracias a ambos.

Saludos.
Jose Nunez
Montevideo




"Jorge Gonzalez" escribió en el mensaje
news:
Vale la respuesta de BitOne

pero para ser más específico, tu consulta quedaría como sigue:

SELECT sum(A* (case when C<>0 Then B/C Else 1 End) ) AS X
FROM tbl01

saludos

Jorge González

"Jose Nunez" escribió en el mensaje
news:
El problema que tengo seguramente es facil de implementar pero yo no
logro que funcione en SQL Server.

Supongamos que tengo 3 campos numericos A, B, C.
Yo quiero obtener la suma para todos los registros de A * (B / C)
Dado que C podria valer cero, y por tanto daria error de division por
cero, necesito controlar esa situacion.

La siguiente sintaxis no me funciona:

SELECT sum(A*IIF(C<>0,B/C,1)) AS X FROM tbl01

Les agradezco si me pueden decir cual deberia ser la sintaxis correcta.

Gracias.
Saludos.
Jose Nuñez
Montevideo





email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida