Foros del Web » Programando para Internet » ASP Clásico »

Sentencia SQL

Estas en el tema de Sentencia SQL en el foro de ASP Clásico en Foros del Web. Hola Amigos del Foro: El problema es el siguiente: esta sentencia me muestra efectivamente el producto y sus configuraciones establecidas segun su presentacion ejm. recuerden ...
  #1 (permalink)  
Antiguo 18/10/2005, 10:13
 
Fecha de Ingreso: mayo-2004
Mensajes: 75
Antigüedad: 20 años, 1 mes
Puntos: 0
Sentencia SQL

Hola Amigos del Foro:

El problema es el siguiente: esta sentencia me muestra efectivamente el producto y sus configuraciones establecidas segun su presentacion ejm.
recuerden esta tabla es producto del uso del INNER JOIN


idpresentacion presentacion idproducto
1 - a - 1
2 - b - 1

eso lo hace bien pero lo que yo quiero es seleccionar aquellas presentaciones que no este configuradas al producto.

La tabla presentacion es:

idpresentacion presentacion
1 - a
2 - b
3 - c
4 - d


SELECT presentacion.idpresentacion,presentacion.presentac ion
FROM producto_configuracion INNER JOIN presentacion ON producto_configuracion.idpresentacion = presentacion.idpresentacion
WHERE producto_configuracion.idproducto = MMColParam AND producto_configuracion.idpresentacion = MMColParam1

MMColParam 1 Request.QueryString("idproducto")
MMColParam1 producto_configuracion.idpresentacion Request("MM_EmptyValue")


yo lo que quiero es que me muestre las opciones no creadas


idpresentacion presentacion idproducto
3 - c - 1
4 - d - 1

Es decir que me presenta las configuraciones que aun puedan ser creadas, es logico que estas configuraciones no existen aun,

Por favor indiquemen si se puede realizar esta estructura

gracias


SAINTEL
  #2 (permalink)  
Antiguo 18/10/2005, 12:37
 
Fecha de Ingreso: junio-2005
Mensajes: 114
Antigüedad: 19 años
Puntos: 0
usá un outer

Hola ! normalmente para mostrar los registros de una tabla que no están en la otra, hay que modificar el tipo de consulta de tipo Outer Join, que incluya todos los registros de la primer tabla, y donde el valor del campo que las vincula (en la segunda tabla) sea nulo.

Por ejemplo:
SELECT BASE1.ORDEN, BASE2.ORDEN
FROM BASE1 LEFT JOIN BASE2 ON BASE1.ORDEN = BASE2.ORDEN
WHERE BASE2.ORDEN Is Null;

Slds. Edum.
  #3 (permalink)  
Antiguo 18/10/2005, 12:55
 
Fecha de Ingreso: mayo-2004
Mensajes: 75
Antigüedad: 20 años, 1 mes
Puntos: 0
Gracias Amigo dejame probar
  #4 (permalink)  
Antiguo 18/10/2005, 13:47
 
Fecha de Ingreso: mayo-2004
Mensajes: 75
Antigüedad: 20 años, 1 mes
Puntos: 0
Me sigue mostrando el mismo resultado de arriba

SELECT presentacion.idpresentacion,presentacion.presentac ion,producto_configuracion.idproducto
FROM producto_configuracion LEFT JOIN presentacion ON producto_configuracion.idpresentacion = presentacion.idpresentacion
WHERE producto_configuracion.idproducto = MMColParam AND producto_configuracion.idpresentacion = MMColParam1
ORDER BY producto_configuracion.idpresentacion ASC


SAINTEL
  #5 (permalink)  
Antiguo 18/10/2005, 13:52
 
Fecha de Ingreso: mayo-2004
Mensajes: 75
Antigüedad: 20 años, 1 mes
Puntos: 0
Y usando este no me muestra nada es decir "No DATA"


SELECT presentacion.idpresentacion,presentacion.presentac ion,producto_configuracion.idproducto
FROM producto_configuracion LEFT JOIN presentacion ON producto_configuracion.idpresentacion = presentacion.idpresentacion
WHERE producto_configuracion.idproducto is null

SAINTEL
  #6 (permalink)  
Antiguo 19/10/2005, 07:14
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
mmm, nomás no entendí.

Por favor, coloca un ejemplo del contenido de producto_configuracion y presentacion así como los registros que exactamente te gustaría obtener.

Saludos
  #7 (permalink)  
Antiguo 19/10/2005, 09:15
 
Fecha de Ingreso: junio-2005
Mensajes: 114
Antigüedad: 19 años
Puntos: 0
me parece que tampoco entendí bien, por favor poné bien cuáles son las tablas y estructuras, cuál es la que tiene más registros, etc.
De todos modos intentá interpretar la forma de hacer la consulta como expliqué más arriba.
SELECT BASE1.ORDEN, BASE2.ORDEN
FROM BASE1 LEFT JOIN BASE2 ON BASE1.ORDEN = BASE2.ORDEN
WHERE BASE2.ORDEN Is Null;

En el ejemplo, BASE1 tiene 4 registros (ORDEN = 1,2,3,4), BASE2 tiene 2 registros (ORDEN = 1,2). Al hacer el left join, la consulta muestra todos los registros de la BASE1 unidos por orden con la BASE2; la condición is null hace que sólo muestre los registros que no existen en la BASE2.
No entiendo muy bien como estás organizando la consulta, no debería ser:

SELECT presentacion.idpresentacion,presentacion.presentac ion,producto_configuracion.idproducto
FROM presentacion LEFT JOIN producto_configuracion ON = presentacion.idpresentacion
WHERE producto_configuracion.idpresentacion is null

¿?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:52.