Ayuda con una consulta

07/04/2004 - 09:55 por Tomas Martin | Informe spam
Tengo una tabla 'Ventas' con las columnas :

Fecha, Factura, tipo, .

Necesito montar una consulta (o SP) que me devuelva las filas de 'ventas' de
las tres últimas facturas (orden por fecha) anteriores a una fecha dada de
un tipo determinado

Ejemplo:
fecha factura Tipo
1 01/01 001 X
2 01/02 001 X
3 01/03 002 O
4 01/04 005 X
5 01/05 002 O
6 01/06 003 X
7 01/07 004 O
8 01/08 005 X
9 01/09 004 O
10 01/10 005 X
11 01/11 006 X
12 01/12 006 X
.

para la fecha >01/12 y tipo X me devolvería las filas: 12,11,10,8,6 y 4 ya
que las tres últimas facturas que cumplen la condicion son la 006,005 y 003

gracias

TomasMM

Preguntas similare

Leer las respuestas

#6 Tomas Martin
12/04/2004 - 09:50 | Informe spam
Muchas gracias a los cuatro, el que más se ha acercado es Javier, 'CASI'
perfecto, pero esta consulta me devuelve unicamente las lineas de las
facturas 5 y 6 y la condición es que devuelva todas las lineas de 3
facturas. Es precisamente el problema que no se resolver: si en el
' JOIN (SELECT TOP 3 Factura ...' hay numeros de factura repetidos ya no
funciona pues pierde una factura por repetición.

TomásMM




"Javier Loria" escribió en el mensaje
news:OqGjD$
Mostrar la cita
wrote
Mostrar la cita
'ventas'
Mostrar la cita
de
Mostrar la cita
ya
Mostrar la cita
#7 Miguel Egea
12/04/2004 - 10:29 | Informe spam
Estupendo tomás, la siguiente vez ayuda mucho si nos pones en lugar de un
ejemplo de los datos el script de como crearlos, es bastante más sencillo
conseguir lo que quieres sin tener que invertir un tiempo excesivo.
Entiendo que ya lo has solucionado, si no es así, cuentanos.


Saludos

Miguel Egea
Microsoft SQL-SERVER MVP
Brigada Anti-Cursores
http://www.portalsql.com

(Quita el online si me tienes que mandar un correo)
"Tomas Martin" <t o m a s m m [ARROBA] m i c r o v e n [punto] n e t>
escribió en el mensaje news:
Mostrar la cita
dada
Mostrar la cita
4
Mostrar la cita
y
Mostrar la cita
#8 Tomas Martin
13/04/2004 - 09:32 | Informe spam
Tiene razón Miguel, aún no he conseguido que me funcione como deseo así que
ahí va la información por si podeis darle alguna vuelta más

CREATE TABLE [dbo].[Tabla] (
[Id] [int] IDENTITY (1, 1) NOT NULL ,
[Fecha] [smalldatetime] NOT NULL ,
[Factura] [int] NOT NULL ,
[Tipo] [char] (1) COLLATE Modern_Spanish_CI_AS NOT NULL
) ON [PRIMARY]
GO

Los datos para el test son:
1,2004-01-01 00:00:00,1,"X"
2,2004-02-01 00:00:00,1,"X"
3,2004-03-01 00:00:00,2,"O"
4,2004-04-01 00:00:00,5,"X"
5,2004-05-01 00:00:00,2,"O"
6,2004-06-01 00:00:00,3,"X"
7,2004-07-01 00:00:00,4,"O"
8,2004-08-01 00:00:00,5,"X"
9,2004-09-01 00:00:00,4,"O"
10,2004-10-01 00:00:00,5,"X"
11,2004-11-01 00:00:00,6,"X"
12,2004-12-01 00:00:00,6,"X"

thanks

Tomás Martín
#9 Javier Loria
13/04/2004 - 13:49 | Informe spam
Hola Tomas:
Disculpa se me habia pasado tu posteo.
Prueba con (SELECT DISTINCT TOP 3 Factura ...)
Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
Tomas Martin <t o m a s m m [ARROBA] m i c r o v e n [punto] n e t>
escribio:
Mostrar la cita
#10 Tomas Martin
13/04/2004 - 16:57 | Informe spam
Hola Javier:
Cuando se especifica SELECT DISTINCT, los elementos de ORDER BY deben
aparecer en la lista de selección.
Y si añado 'Fecha' en la lista me devuelve los mismos resultados que
inicialmente ya que, aunque hay dos lineas con 'Factura=6', tienen fechas
distintas.

Tomás

"Javier Loria" escribió en el mensaje
news:
Mostrar la cita
Ads by Google
Search Busqueda sugerida