Tú sí, tú no, tú tampoco, tú sí, tu no, ...

15/01/2008 - 17:26 por David | Informe spam
SQL Server 2000

Muy buenas, en el siguiente escenario:

(1)

TablaPromociones
-
ID_promocion (clave principal)
(muchos más campos)

(2)

TablaArticulos

ID_articulo (clave principal)
(muchos más campos)

(3)

Existe una relación muchos a muchos entre esas dos tablas: una promoción
tiene muchos articulos y un artículo puede estar en muchas promociones, creo
una tabla para definir esta relación muchos a muchos:

TablaRelacionPromocionesArticulos
-
ID_promocion
ID_articulo

La combinación de los dos campos forman la clave principal.

Bien básicamente este es el escenario (lo he simplificado bastante). No se
me ocurre "montar" la siguiente consulta de selección:

Dada una promoción (WHERE ID_promocion=@promocion)
Muestra TODOS, insisto todos los articulos y por ejemplo con un campo BIT
indica aquellos que forman parte de la promoción indicada y los que no
forman.


Imaginemos que tengo 30 articulos (a1, a2, a3, ..., ai, , a30)
La promocion P7 la componen los articulos a2, a13 y a20)

La consulta para la promoción P7 devolvería:

a1 0
a2 1
a3 0
a4 0
a5 0
... 0
a13 1
a14 0
... 0
a20 1
a21 0
... 0
a30 0

¿Es posible escribir esta consulta sin montar "bucles"?

Gracias de antemano
 

Leer las respuestas

#1 Gux (MVP)
15/01/2008 - 17:40 | Informe spam
Sí, es posible usando joins y subconsultas, entre otras posibles maneras de
hacerlo.

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"David" wrote:

SQL Server 2000

Muy buenas, en el siguiente escenario:

(1)

TablaPromociones
-
ID_promocion (clave principal)
(muchos más campos)

(2)

TablaArticulos

ID_articulo (clave principal)
(muchos más campos)

(3)

Existe una relación muchos a muchos entre esas dos tablas: una promoción
tiene muchos articulos y un artículo puede estar en muchas promociones, creo
una tabla para definir esta relación muchos a muchos:

TablaRelacionPromocionesArticulos
-
ID_promocion
ID_articulo

La combinación de los dos campos forman la clave principal.

Bien básicamente este es el escenario (lo he simplificado bastante). No se
me ocurre "montar" la siguiente consulta de selección:

Dada una promoción (WHERE ID_promocion=@promocion)
Muestra TODOS, insisto todos los articulos y por ejemplo con un campo BIT
indica aquellos que forman parte de la promoción indicada y los que no
forman.


Imaginemos que tengo 30 articulos (a1, a2, a3, ..., ai, , a30)
La promocion P7 la componen los articulos a2, a13 y a20)

La consulta para la promoción P7 devolvería:

a1 0
a2 1
a3 0
a4 0
a5 0
0
a13 1
a14 0
0
a20 1
a21 0
0
a30 0

¿Es posible escribir esta consulta sin montar "bucles"?

Gracias de antemano




Preguntas similares