autonuméricos agrupados ???

13/07/2005 - 14:09 por Hernán Castelo | Informe spam
hola
cómo puedo hacer para asignar valores
de Nro de Orden a las filas
dentro de un grupo ?

es decir, un "autonumérico" relativo al grupo
no toda la tabla

A, x, 1
A, x, 2
A, x, ...
A, x, N(A,x)

A, y, 1
A, y, 2
A, y, ...
A, y, N(A,y)

atte,
Hernán Castelo
SGA - UTN - FRBA

Preguntas similare

Leer las respuestas

#1 Manuel Vera
13/07/2005 - 15:40 | Informe spam
Yo hice una chapuzada para resolver esto.
Creo una tabla temporal con un campo id autonumerico
Le agrego los datos.
Paso los datos de la tabla temporal a la tabla real
Borro la temporal

Salu2
MV
Respuesta Responder a este mensaje
#2 Alejandro Mesa
13/07/2005 - 16:05 | Informe spam
Hernán Castelo,

Ve si esto te sirve de algo. Si la definicion y/o data usada no esta de
acuerdo a tus requerimientos, por favor, postea la informacion necesaria para
mejor entendimiento de lo que deseas hacer.

use northwind
go

create table t1 (
c1 char(1),
c2 char(1)
)
go

insert into t1 values('A', 'x')
insert into t1 values('A', 'x')
insert into t1 values('A', 'x')
insert into t1 values('A', 'x')
insert into t1 values('A', 'x')

insert into t1 values('A', 'y')
insert into t1 values('A', 'y')
insert into t1 values('A', 'y')
go

select
identity(int, 1, 1) as number
into
number
from
sysobjects
go

select
t2.c1, t2.c2, n.number
from
(
select c1, c2, count(*) as c3
from t1
group by c1, c2
) as t2
inner join
number as n
on n.number <= t2.c3
order by
c1, c2, n.number
go

drop table t1, number
go


AMB

"Hernán Castelo" wrote:

hola
cómo puedo hacer para asignar valores
de Nro de Orden a las filas
dentro de un grupo ?

es decir, un "autonumérico" relativo al grupo
no toda la tabla

A, x, 1
A, x, 2
A, x, ...
A, x, N(A,x)

A, y, 1
A, y, 2
A, y, ...
A, y, N(A,y)

atte,
Hernán Castelo
SGA - UTN - FRBA



Respuesta Responder a este mensaje
#3 Hernán Castelo
13/07/2005 - 21:06 | Informe spam
gracias por las respuestas
esta vez seré más explícito

tengo una tabla de este modo
A , x
A , y
B , w
B , x
C , x
C , y
C , z
D , w

necesito obtener
A , x , 1
A , y , 2
B , w , 1
B , x , 2
C , x , 1
C , y , 2
C , z , 3
D , w , 1

en total son 25.000 filas

para esto estoy haciendo
un DECLARE CURSOR
es algo simple,
pero consume recursos y tarda 4 min y 30 seg
en realidad, no interesa cuánto tarda
porque se ejecuta 2 veces por año
pero me interesaría saber si se puede hacer
de otra manera

gracias nuevamente
atte,
Hernán Castelo
SGA - UTN - FRBA

"Alejandro Mesa" escribió en el
mensaje news:
Hernán Castelo,

Ve si esto te sirve de algo. Si la definicion y/o data usada no esta de
acuerdo a tus requerimientos, por favor, postea la informacion necesaria


para
mejor entendimiento de lo que deseas hacer.

use northwind
go

create table t1 (
c1 char(1),
c2 char(1)
)
go

insert into t1 values('A', 'x')
insert into t1 values('A', 'x')
insert into t1 values('A', 'x')
insert into t1 values('A', 'x')
insert into t1 values('A', 'x')

insert into t1 values('A', 'y')
insert into t1 values('A', 'y')
insert into t1 values('A', 'y')
go

select
identity(int, 1, 1) as number
into
number
from
sysobjects
go

select
t2.c1, t2.c2, n.number
from
(
select c1, c2, count(*) as c3
from t1
group by c1, c2
) as t2
inner join
number as n
on n.number <= t2.c3
order by
c1, c2, n.number
go

drop table t1, number
go


AMB

"Hernán Castelo" wrote:

> hola
> cómo puedo hacer para asignar valores
> de Nro de Orden a las filas
> dentro de un grupo ?
>
> es decir, un "autonumérico" relativo al grupo
> no toda la tabla
>
> A, x, 1
> A, x, 2
> A, x, ...
> A, x, N(A,x)
>
> A, y, 1
> A, y, 2
> A, y, ...
> A, y, N(A,y)
>
> atte,
> Hernán Castelo
> SGA - UTN - FRBA
>
>
>
Respuesta Responder a este mensaje
#4 Hernán Castelo
13/07/2005 - 22:14 | Informe spam
en otras palabras
lo ideal sería poder hacer :

INSERT [ tablaConNroOrden ]
SELECT clave1, clave2, ( ??? ) nroOrden -- cómo ??!?!
FROM [ tablaSinNroOrden ]

atte,
Hernán Castelo
SGA - UTN - FRBA

"Hernán Castelo" escribió en el mensaje
news:%
gracias por las respuestas
esta vez seré más explícito

tengo una tabla de este modo
A , x
A , y
B , w
B , x
C , x
C , y
C , z
D , w

necesito obtener
A , x , 1
A , y , 2
B , w , 1
B , x , 2
C , x , 1
C , y , 2
C , z , 3
D , w , 1

en total son 25.000 filas

para esto estoy haciendo
un DECLARE CURSOR
es algo simple,
pero consume recursos y tarda 4 min y 30 seg
en realidad, no interesa cuánto tarda
porque se ejecuta 2 veces por año
pero me interesaría saber si se puede hacer
de otra manera

gracias nuevamente
atte,
Hernán Castelo
SGA - UTN - FRBA

"Alejandro Mesa" escribió en el
mensaje news:
> Hernán Castelo,
>
> Ve si esto te sirve de algo. Si la definicion y/o data usada no esta de
> acuerdo a tus requerimientos, por favor, postea la informacion necesaria
para
> mejor entendimiento de lo que deseas hacer.
>
> use northwind
> go
>
> create table t1 (
> c1 char(1),
> c2 char(1)
> )
> go
>
> insert into t1 values('A', 'x')
> insert into t1 values('A', 'x')
> insert into t1 values('A', 'x')
> insert into t1 values('A', 'x')
> insert into t1 values('A', 'x')
>
> insert into t1 values('A', 'y')
> insert into t1 values('A', 'y')
> insert into t1 values('A', 'y')
> go
>
> select
> identity(int, 1, 1) as number
> into
> number
> from
> sysobjects
> go
>
> select
> t2.c1, t2.c2, n.number
> from
> (
> select c1, c2, count(*) as c3
> from t1
> group by c1, c2
> ) as t2
> inner join
> number as n
> on n.number <= t2.c3
> order by
> c1, c2, n.number
> go
>
> drop table t1, number
> go
>
>
> AMB
>
> "Hernán Castelo" wrote:
>
> > hola
> > cómo puedo hacer para asignar valores
> > de Nro de Orden a las filas
> > dentro de un grupo ?
> >
> > es decir, un "autonumérico" relativo al grupo
> > no toda la tabla
> >
> > A, x, 1
> > A, x, 2
> > A, x, ...
> > A, x, N(A,x)
> >
> > A, y, 1
> > A, y, 2
> > A, y, ...
> > A, y, N(A,y)
> >
> > atte,
> > Hernán Castelo
> > SGA - UTN - FRBA
> >
> >
> >


Respuesta Responder a este mensaje
#5 Maxi
13/07/2005 - 22:23 | Informe spam
Hola, el segundo campo esta ordenado? porque de ser asi podrias hacer algo
como esto:

Select campo, (select count(*) from tabla t1 where t1.campo1 = t2.campo1 and
t1.campo2 <= t2.campo2) num
from tabla t2 order by campo1,campo2


Salu2
Maxi


"Hernán Castelo" escribió en el mensaje
news:%
gracias por las respuestas
esta vez seré más explícito

tengo una tabla de este modo
A , x
A , y
B , w
B , x
C , x
C , y
C , z
D , w

necesito obtener
A , x , 1
A , y , 2
B , w , 1
B , x , 2
C , x , 1
C , y , 2
C , z , 3
D , w , 1

en total son 25.000 filas

para esto estoy haciendo
un DECLARE CURSOR
es algo simple,
pero consume recursos y tarda 4 min y 30 seg
en realidad, no interesa cuánto tarda
porque se ejecuta 2 veces por año
pero me interesaría saber si se puede hacer
de otra manera

gracias nuevamente
atte,
Hernán Castelo
SGA - UTN - FRBA

"Alejandro Mesa" escribió en el
mensaje news:
Hernán Castelo,

Ve si esto te sirve de algo. Si la definicion y/o data usada no esta de
acuerdo a tus requerimientos, por favor, postea la informacion necesaria


para
mejor entendimiento de lo que deseas hacer.

use northwind
go

create table t1 (
c1 char(1),
c2 char(1)
)
go

insert into t1 values('A', 'x')
insert into t1 values('A', 'x')
insert into t1 values('A', 'x')
insert into t1 values('A', 'x')
insert into t1 values('A', 'x')

insert into t1 values('A', 'y')
insert into t1 values('A', 'y')
insert into t1 values('A', 'y')
go

select
identity(int, 1, 1) as number
into
number
from
sysobjects
go

select
t2.c1, t2.c2, n.number
from
(
select c1, c2, count(*) as c3
from t1
group by c1, c2
) as t2
inner join
number as n
on n.number <= t2.c3
order by
c1, c2, n.number
go

drop table t1, number
go


AMB

"Hernán Castelo" wrote:

> hola
> cómo puedo hacer para asignar valores
> de Nro de Orden a las filas
> dentro de un grupo ?
>
> es decir, un "autonumérico" relativo al grupo
> no toda la tabla
>
> A, x, 1
> A, x, 2
> A, x, ...
> A, x, N(A,x)
>
> A, y, 1
> A, y, 2
> A, y, ...
> A, y, N(A,y)
>
> atte,
> Hernán Castelo
> SGA - UTN - FRBA
>
>
>




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