SQL - Consulta MS-SQL2012

   
Vista:

Consulta MS-SQL2012

Publicado por michel1n0 (1 intervención) el 08/04/2016 19:55:27
Estimado,

Aquí acudiendo a su ayuda, resulta que estamos trabajando con el MS SQL 2012, antes trabajabamos con el MS SQL 2008 y podíamos ejecutar sin problemas este script:

1
2
3
4
5
6
7
8
9
select
a.campo1,
b.campo1,
a.campo2,
b.campo2
from tabla a, tabla b
where
a.campo1 = b.campo1
and a.campo2 *= b.campo2

Y el resultado eran los registros que coinciden en campo1 de ambas tablas pero también me mostraba registros que no coinciden en campo2 de la tabla a, pero ahora que quiero ejecutar lo mismo en el MS SQL 2012, me sale el siguiente error:

1
sintaxis incorrecta cerca de '*='

Favor, espero me puedan aclarar si ya no es permitido esa comparación en MS SQL 2012, o es que hay que configurar algo.

Atento a su pronta respuesta.

Saludos...

michel1n0
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

Consulta MS-SQL2012

Publicado por leonardo_josue (878 intervenciones) el 08/04/2016 20:47:40
Hola michel1n0:

La sintaxis con (*=, +=, =+, =*) hasta donde recuerdo ya no forman parte del estándar de SQL, en lugar de eso debes utilizar JOIN's (LEFT, RIGHT o INNER según sea el caso).

Según lo que planteas, si quieres que se muestren todos los registros de tu tabla a que coinciden con tu tabla b y también los de la tabla a que no coinciden con la tabla b, entonces debes utilizar un LEFT JOIN:

En lugar de hacer esto:

1
2
3
4
5
6
...
from tabla a, tabla b
where
a.campo1 = b.campo1
and a.campo2 *= b.campo2
...

haces esto:

1
2
3
4
...
from tabla a
LEFT JOIN tabla b ON a.campo1 = b.campo1 AND  a.campo2 = b.campo2
...

Si tienes dudas en cómo funcionan los JOIN's puedes preguntarle a santa Wikipedia:

https://es.wikipedia.org/wiki/Join

haz la prueba y nos comentas. si continuas con problemas, postea lo que intentaste hacer, incluye también algunos datos de ejemplo de tus tablas y dinos qué esperas como salida.

Saludos
Leo.
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