Principales respuestas
Como hacer una condición en SQL

Pregunta
-
Hola, buen día,
Necesito de su ayuda para hacer una condición en SQL ya que tengo dudas para realizarla se escucha fácil para hacerla pero aun no se mucho y requiero de su apoyo.
INSERT INTO RecHum_Web.dbo.rh_Mov_Nomina(
cla_empresa, cla_trab, cla_perded, monto, fecha_aplica,
cla_centro_costo, cla_ubicacion, cla_puesto, cla_tab_sue,
niv_tab_sue, tipo_mov, cla_depto, monto_tope, acum, fecha_ult_cambio, cla_puesto_pag, CLA_TURNO)
SELECT
Empresa = rs.cve_emp, Trabajador = rs.cve_trab,
cla_perded = 106, Neto - subsidio, Fecha_aplica = rs.fecha,
rh.cla_centro_costo, rh.cla_ubicacion_base, rh.cla_puesto, rh.cla_tab_sue, rh.niv_tab_sue,
Tipo_mov = 2, rh.cla_depto, rs.neto - rs.subsidio, 0, Cast(GetDate() As SmallDatetime),
rh.cla_puesto, IsNull(rh.CLA_TURNO, 0)
FROM dbo.cmrRegistroServicio rs
JOIN RecHum_Web.dbo.rh_trab rh
ON rs.cve_trab = rh.cla_trab
WHERE (rs.cve_ter = @Terminal)
AND Cast(Fecha As Date) >= @FechaDesde
AND Cast(Fecha As Date) <= @FechaHasta
AND IsNull(rs.Transmitido, 0) = 0
UPDATE dbo.cmrRegistroServicio
SET Transmitido = 1,
FechaTransmitido = GetDate()
WHERE (cve_ter = @Terminal)
AND Cast(Fecha As Date) >= @FechaDesde
AND Cast(Fecha As Date) <= @FechaHasta
AND IsNull(Transmitido, 0) = 0
COMMIT TRANSACTION
SELECT 0 as Error, 'Los registros del Comedor se enviaron correctamente a Fortia.' as Mensaje
ENDEste es mi Query en donde cla_perded = 106 pertenece a una empresa
Pero necesito agregar tambien cla_perded = 110 ya que cuando yo registro a una persona me aparece con registro de 106 y no con el 110
en resumen debo de registrar con cla_perded = 106 y 110 pero no se como iniciar la condición me pueden orientar por favor.
Muchas gracias.
Saludos.
Molitaa
Respuestas
-
En el selec, no tenes forma de saber si es un 106 o un 110? lo tenes hardcode al valor 106? de ser asi tenes algo mal en el diseño de las tablas
Carlos Ignacio Aguero. DBA SQL Server. Toda mi respeto al pueblo Peruano por la ayuda prestada en la guerra de Malvinas.
- Marcado como respuesta molitaa martes, 22 de noviembre de 2016 18:23
-
¿Entonces porque no recuperas el valor de dicha columna?
SELECT rs.cve_emp, rs.cve_trab, rh.cla_perded, Neto - subsidio,
Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.- Marcado como respuesta molitaa martes, 22 de noviembre de 2016 18:22
Todas las respuestas
-
-
-
Debes explicar bien lo que requieres, en lo personal no me queda del todo claro.
- ¿Necesitas insertar dos filas en todos los casos (una con el valor 106 y otra con el valor 110)?
- ¿deseas insertar una fila según una condición? ¿que condición? Menciona tablas, columnas, relaciones que participan en la condición.
Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios. -
Gracias Willams, quiero agregar en la tabla RecHum_Web.dbo.rh_Mov_Nomina en la columna cla_perded el valor 110
si te fijas en mi select:
SELECT Empresa = rs.cve_emp, Trabajador = rs.cve_trab, cla_perded = 106, Neto - subsidio, Fecha_aplica= rs.fecha, rh.cla_centro_costo, rh.cla_ubicacion_base, rh.cla_puesto, rh.cla_tab_sue, rh.niv_tab_sue, Tipo_mov = 2, rh.cla_depto, rs.neto - rs.subsidio, 0, Cast(GetDate() As SmallDatetime), rh.cla_puesto, IsNull(rh.CLA_TURNO, 0)
yo tengo definido mi cla_perded = 106 por default entonces todos me los agrega con 106 yo quiero colocar una condición que me tome en cuenta los 110.
no se si me explique mejor.
si mi registro tiene valor cla_perded = 110 que me lo agregue con ese valor, si mi registro es cla_perded = 106 que me lo agregue con 106
Molitaa
-
De acuerdo, entonces queda claro que no debes de colocar un valor constante sino el valor que contiene la columna 'cla_perded'.
¿La columna cla_perded en que tabla se encuentra? Leí en tu respuesta anterior que se encuentra en la misma tabla que insertas [rh_Mov_Nomina], pero entonces no tengo claro, ¿cómo obtienes el valor si recién insertas?
-
-
En el selec, no tenes forma de saber si es un 106 o un 110? lo tenes hardcode al valor 106? de ser asi tenes algo mal en el diseño de las tablas
Carlos Ignacio Aguero. DBA SQL Server. Toda mi respeto al pueblo Peruano por la ayuda prestada en la guerra de Malvinas.
- Marcado como respuesta molitaa martes, 22 de noviembre de 2016 18:23
-
¿Entonces porque no recuperas el valor de dicha columna?
SELECT rs.cve_emp, rs.cve_trab, rh.cla_perded, Neto - subsidio,
Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.- Marcado como respuesta molitaa martes, 22 de noviembre de 2016 18:22
-
Muchas gracias por tu apoyo Willams,
he colocado un Case ya que cla_perded venia de otra tabla, hasta que estuve revisando mas a fondo y haciendo la prueba me di cuenta, una disculpa por no darme cuenta antes, pero como me indicaste estaba bien siempre y cuando estuviera en la tabla que yo te había indicando.
Muchas gracias por tu tiempo.
Lindo Martes.
Saludos.
Molitaa
-
gracias Carlos por tu tiempo en apoyarme he resuelto mi detalle la verdad es que no se mucho de sql, estoy en mis inicios y cualquier comentario que me indican me es muy útil.
Tu pregunta me ayudo a seguir buscando en las tablas si vi la forma de ver si era 106 o 110 y por eso utilice un case.
Que tengas lindo Martes.
Saludos.
Molitaa
-