Consulta por grupos

27/04/2005 - 21:34 por Ricardo | Informe spam
Hola tengo un problema con una consualta en sql server, que no se como
solucionar, tengo una tabla que incluye numeros de facturas que quisiera
agrupar excluyendo las que tenga como deshabilitadas.
mi tabla es factura
nrofactura habilitada
0001 si
0002 si
0003 si
0004 no
0005 si
0006 si
quisiera agruparlas para que quedara
0001-0003
0005-0006
espero que me puedan ayudar gracias, de antemano

Ricardo

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
27/04/2005 - 23:21 | Informe spam
Ve si esto te sirve.

use northwind
go

create table dbo.factura (
nrofactura varchar(15) not null unique,
habilitada char(2)
)
go

insert into dbo.factura values('0001', 'si')
insert into dbo.factura values('0002', 'si')
insert into dbo.factura values('0003', 'si')
insert into dbo.factura values('0004', 'no')
insert into dbo.factura values('0005', 'si')
insert into dbo.factura values('0006', 'si')
go

select
min(nrofactura),
max(nrofactura)
from
dbo.factura as a
where
habilitada = 'si'
group by
(cast(nrofactura as int) - 1) / 3
order by
(cast(nrofactura as int) - 1) / 3
go

drop table dbo.factura
go



AMB


"Ricardo" wrote:

Hola tengo un problema con una consualta en sql server, que no se como
solucionar, tengo una tabla que incluye numeros de facturas que quisiera
agrupar excluyendo las que tenga como deshabilitadas.
mi tabla es factura
nrofactura habilitada
0001 si
0002 si
0003 si
0004 no
0005 si
0006 si
quisiera agruparlas para que quedara
0001-0003
0005-0006
espero que me puedan ayudar gracias, de antemano

Ricardo

Respuesta Responder a este mensaje
#2 swricardo
29/04/2005 - 00:02 | Informe spam
Alejandro, gracias por tu ayuda, pero la consulta agrupa los grupos de a 3
registros y tengo mas de 150000 numeros de facturas.
Como podria modificarla para que solo me tome el max y min de un rango
mayor.

Gracias de nuevo, Ricardo


Alejandro Mesa wrote:

Ve si esto te sirve.

use northwind
go

create table dbo.factura (
nrofactura varchar(15) not null unique,
habilitada char(2)
)
go

insert into dbo.factura values('0001', 'si')
insert into dbo.factura values('0002', 'si')
insert into dbo.factura values('0003', 'si')
insert into dbo.factura values('0004', 'no')
insert into dbo.factura values('0005', 'si')
insert into dbo.factura values('0006', 'si')
go

select
min(nrofactura),
max(nrofactura)
from
dbo.factura as a
where
habilitada = 'si'
group by
(cast(nrofactura as int) - 1) / 3
order by
(cast(nrofactura as int) - 1) / 3
go

drop table dbo.factura
go



AMB


"Ricardo" wrote:

> Hola tengo un problema con una consualta en sql server, que no se como
> solucionar, tengo una tabla que incluye numeros de facturas que quisiera
> agrupar excluyendo las que tenga como deshabilitadas.
> mi tabla es factura
> nrofactura habilitada
> 0001 si
> 0002 si
> 0003 si
> 0004 no
> 0005 si
> 0006 si
> quisiera agruparlas para que quedara
> 0001-0003
> 0005-0006
> espero que me puedan ayudar gracias, de antemano
>
> Ricardo
>
Respuesta Responder a este mensaje
#3 Alejandro Mesa
30/04/2005 - 23:30 | Informe spam
Ricardo,

Cambiando el divisor en la expresion:

(cast(nrofactura as int) - 1) / 3

usa una variable.

Ejemplo:

declare @i int

set @i = 10

select
min(nrofactura),
max(nrofactura)
from
dbo.factura as a
where
habilitada = 'si'
group by
(cast(nrofactura as int) - 1) / @i
order by
(cast(nrofactura as int) - 1) / @i
go


AMB

"Ricardo" wrote:

Alejandro, gracias por tu ayuda, pero la consulta agrupa los grupos de a 3
registros y tengo mas de 150000 numeros de facturas.
Como podria modificarla para que solo me tome el max y min de un rango
mayor.

Gracias de nuevo, Ricardo


Alejandro Mesa wrote:

> Ve si esto te sirve.

> use northwind
> go

> create table dbo.factura (
> nrofactura varchar(15) not null unique,
> habilitada char(2)
> )
> go

> insert into dbo.factura values('0001', 'si')
> insert into dbo.factura values('0002', 'si')
> insert into dbo.factura values('0003', 'si')
> insert into dbo.factura values('0004', 'no')
> insert into dbo.factura values('0005', 'si')
> insert into dbo.factura values('0006', 'si')
> go

> select
> min(nrofactura),
> max(nrofactura)
> from
> dbo.factura as a
> where
> habilitada = 'si'
> group by
> (cast(nrofactura as int) - 1) / 3
> order by
> (cast(nrofactura as int) - 1) / 3
> go

> drop table dbo.factura
> go



> AMB


> "Ricardo" wrote:

> > Hola tengo un problema con una consualta en sql server, que no se como
> > solucionar, tengo una tabla que incluye numeros de facturas que quisiera
> > agrupar excluyendo las que tenga como deshabilitadas.
> > mi tabla es factura
> > nrofactura habilitada
> > 0001 si
> > 0002 si
> > 0003 si
> > 0004 no
> > 0005 si
> > 0006 si
> > quisiera agruparlas para que quedara
> > 0001-0003
> > 0005-0006
> > espero que me puedan ayudar gracias, de antemano
> >
> > Ricardo
> >



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida