SQL Server - [Consulta] Cambio sentencia *=

 
Vista:
sin imagen de perfil

[Consulta] Cambio sentencia *=

Publicado por Jimmy Alexander (2 intervenciones) el 16/01/2015 17:58:41
Buenos días,

Hola Programadores,

Tengo una consulta acerca de como reemplazar una consulta en un programa que se conecta a SQL Server 2012, la consulta es así:

Select tabla1.valor_mercado as vlr_mer_02,

tabla1.nro_titulo,

tabla2.valor_mercado,

tabla2.valor_dia as vlr_dia_sal,

tabla1.cod_emp,

tabla1.pago_interes,

tabla3.fecha,

tabla3.fecha_final,

tabla3.nro_papeleta,

from tabla1,

tabla3,

tabla2

where tabla1.cod_emp *= tabla2.cod_emp and

tabla1.nro_titulo *= tabla2.nro_titulo and

(((tabla3.cod_emp = tabla1.cod_emp ) and

(tabla3.nro_papeleta = tabla1.nro_papeleta)) and

(((tabla3.fecha <= '16-10-2014' ) and

(tabla3.fecha_final > '16-10-2014' ) and

(tabla3.negocio in(5,6) ) and

(tabla3.estado in('L','F')) ))) and

tabla2.fecha = '16-10-2014' and

( tabla1.cod_emp = 20 or tabla1.cod_emp <> 20 ) ;



El problema, es que en el where la sentencia que tiene ese asterisco igual ( *= ) ya no funciona en sql server 2012, y estoy buscando como reemplazarlo, creo que sería con un left join, pero hasta donde yo lo he usado, se debe nombrar nuevamente la tabla1. por ejemplo para hacer el left join y, me dice que esta duplicada por lo que se encuentra en el from, la quité y, me deja hacerlo pero la consulta se traba y llena la tabla TMP del motor, me podrían ayudar para saber como cambiar esa consulta, muchas gracias a todos.


saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

[Consulta] Cambio sentencia *=

Publicado por Isaias (4558 intervenciones) el 19/01/2015 18:25:08
segun la ayuda en linea:

Multiplica dos números y establece un valor como resultado de la operación. Por ejemplo, si una variable @x es igual 35, @x *= 2 toma el valor original de @ x, lo multiplica por 2 y establece @x en ese nuevo valor (70).



declare @x int
set @x = 35
select @x *= 2
print @x
R = 70

Ahora si vas a realizar un LEFT JOIN, debes nombrar ambas tablas e inidicar el campo (s) por los cuales unes dicho join

where tabla1 LEFT JOIN tabla2 ON tabla1.idx1 = tabla2.idx2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

[Consulta] Cambio sentencia *=

Publicado por Jimmy Alexander (2 intervenciones) el 19/01/2015 21:41:39
Buenas tardes,

Muchas gracias, al parecer el problema es en power builder ya que las tenía tres tablas para cruzar pero sólo usaba dos en el left join y una de esas tablas debe estar al final del from y, la otra tabla como me lo indicaste en el left join y se cruzan los campos y tenemos lista la consulta.

Muchas gracias,

Saludos, jimmy Pérez.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias Islas
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

[Consulta] Cambio sentencia *=

Publicado por Isaias Islas (4558 intervenciones) el 19/01/2015 23:49:30
De nada

Siempre que preguntes, indica sobre que tipo de base de datos estas trabajando, asi nos das un poco de mas información para darte una respuesta adecuada
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar