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

Consulta a SQL

Estas en el tema de Consulta a SQL en el foro de ASP Clásico en Foros del Web. Hola, Tengo una tabla en donde vacio datos de facturas, de la siguiente forma Factura Articulo StatusPrecio 0001 520 S 0001 125 S 0001 562 ...
  #1 (permalink)  
Antiguo 08/08/2005, 12:30
 
Fecha de Ingreso: julio-2005
Mensajes: 128
Antigüedad: 18 años, 10 meses
Puntos: 0
Exclamación Consulta a SQL

Hola,
Tengo una tabla en donde vacio datos de facturas, de la siguiente forma
Factura Articulo StatusPrecio
0001 520 S
0001 125 S
0001 562 N

Lo que quiero mostrar en pantalla es un resumen de las facturas en las cuales no ha habido un error en precios, osea que no contengan ninguna N en su campo Status precio,

Alguna sugerencia¡?
  #2 (permalink)  
Antiguo 08/08/2005, 12:34
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
Una forma:
Select * from Facturas where StatusPrecio <> 'N'

Otra forma:
Select * from Facturas where StatusPrecio not in (Select * from facturas where StatusPecio = 'N')

Slaudos
  #3 (permalink)  
Antiguo 08/08/2005, 12:35
 
Fecha de Ingreso: julio-2005
Mensajes: 128
Antigüedad: 18 años, 10 meses
Puntos: 0
De esta forma queda agrupado por factura?
Perdon por que eso no lo especifique!
  #4 (permalink)  
Antiguo 08/08/2005, 12:35
 
Fecha de Ingreso: julio-2005
Mensajes: 128
Antigüedad: 18 años, 10 meses
Puntos: 0
De esta forma queda agrupado por factura?
Perdon por que eso no lo especifique!
Tambien me debe quedar los datos como una sola factura
  #5 (permalink)  
Antiguo 08/08/2005, 12:46
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
mmmmmm, a ver, mencionaste mostrar en pantalla es un resumen de las facturas..., pero ahora indicas que quieres mostrar como una sola factura, ya no entendí.

Si puedes explicarte nuevamente, por favor, un poco más a detalle
  #6 (permalink)  
Antiguo 08/08/2005, 13:01
 
Fecha de Ingreso: julio-2005
Mensajes: 128
Antigüedad: 18 años, 10 meses
Puntos: 0
Si, mira al momento en que guardo los datos de la factura, por cada articulo guardo el numero de factura, por ejemplo la factura 0001 tiene diez articulos, por lo que tengo diez registros con el campo 0001 repetido 10 veces, al momento de mostrar ocupaba el group by Factura, pero con esta clausula solo me agrupa los articulos de una factura, pero no me dice si tiene algun precio mal o no.
Creo que no me puedo explicar muy bien, pero haber si me entiendes
  #7 (permalink)  
Antiguo 08/08/2005, 13:06
 
Fecha de Ingreso: julio-2005
Mensajes: 128
Antigüedad: 18 años, 10 meses
Puntos: 0
Ejemplo:
Factura Articulo StatusPrecio
23693 20039 S
23693 20041 S
23693 90004 S
23693 20044 N
23693 7003 N

En este ejemplo no deberia sacarme la factura 23693 por que contiene dos articulos con N en StatusPrecio
  #8 (permalink)  
Antiguo 08/08/2005, 13:12
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
Bueno, pues yo no le veo problema

Select * from Facturas where StatusPrecio <> 'N' where factura = '001'

o

Select * from Facturas where group by factura = '001' having StatusPrecio <> 'N'

etc.

mmmmmmmm, ¿cómo andas en SQL?, ¿si le sabes mas o menos?
  #9 (permalink)  
Antiguo 08/08/2005, 13: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
alto, alto, no ví tu último ejemplo.

Pregunta: ¿si SOLO UN artículo de todo el detalle tiene StatusPrecio = 'N', debe o no debe salir dicha factura?
  #10 (permalink)  
Antiguo 08/08/2005, 13:43
 
Fecha de Ingreso: julio-2005
Mensajes: 128
Antigüedad: 18 años, 10 meses
Puntos: 0
exacto! todos deben de ser 'Y'.
En sql ... mas o menos consultas basicas y clasicas para codigos asp, :)
  #11 (permalink)  
Antiguo 08/08/2005, 13:59
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
Ok, entonces, mostrar todas las facturas cuyos detalles sean todos StatusPrecio = 'Y':

(nunca mencionaste la estructura de la tabla facturas, solo la del detalle, pero bueno)

Código:
Select A.No_Factura, A.Articulo, A.StatusPrecio
from Factura A INNER JOIN Factura_Det B
Where Factura ON Factura_Det.No_Fact = Factura.No_Fact 
WHERE  Factura.No_Fact NOT IN
           (SELECT No_Fact FROM   Factura_Det WHERE (StatusPrecio = 'N'))
Es una forma de hacerlo
  #12 (permalink)  
Antiguo 08/08/2005, 14:04
 
Fecha de Ingreso: julio-2005
Mensajes: 128
Antigüedad: 18 años, 10 meses
Puntos: 0
Disculpa, pero no entiendo muy bien como funciona el query que me envias, pero lo voy a probar, solo dime Factura_Det B lo dejo asi o lo cambio por el nombre de mi tabla?
  #13 (permalink)  
Antiguo 08/08/2005, 14:08
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
Supongo tienes DOS tablas para manejar tu sistema de Facturas:

Una donde venga la fecha, el IdCliente, etc (Tabla Factura) y otra donde vengan cada uno de los artículos de cierta factura (Factura_Det), ¿o no tienes dos tablas?

tendrías que cambiar el nombre de las tablas en el query por el tuyo
  #14 (permalink)  
Antiguo 08/08/2005, 14:10
 
Fecha de Ingreso: julio-2005
Mensajes: 128
Antigüedad: 18 años, 10 meses
Puntos: 0
mmm no tengo dos tablas solo una :(
  #15 (permalink)  
Antiguo 08/08/2005, 14:23
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
¡A caray!, no le aplicaste modelado a tu BD. Pero bueno, esa es otra historia

Intenta con esto:

SELECT factura, articulo, statusprecio
FROM FACTURA
where factura not in (select factura from factura where statusprecio = 'N')
group by factura, articulo, statusprecio


Saludos
  #16 (permalink)  
Antiguo 08/08/2005, 15:00
 
Fecha de Ingreso: julio-2005
Mensajes: 128
Antigüedad: 18 años, 10 meses
Puntos: 0
Muchas gracias, salio justo lo que necesitaba.

Saludos
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 02:20.