Union de Cursores o tipo table

14/05/2004 - 00:31 por German | Informe spam
Saludos,

Necesito unir varias consultas en un procedimiento
almacenado, las consultas provienen de diferentes
funciones, necesito unir estas consultas en una sola para
devolverla a la capa superior. Mi pregunta es si esto se
puede realizar usando cursores o definitivamente necesito
utilizar tipos <table> para poder tener la funcionalidad
que necesito.

Gracias te antemano.

Atte,
German G.

Preguntas similare

Leer las respuestas

#1 Maxi
14/05/2004 - 03:28 | Informe spam
Hola, cursores? que es lo que necesitas hacer exactamente ?

Un abrazo


Salu2

Maxi

Desarrollador 3 estrellas .NET
Buenos Aires - Argentina

MSN:

"German" escribió en el mensaje
news:cf2c01c43939$f88436f0$
Saludos,

Necesito unir varias consultas en un procedimiento
almacenado, las consultas provienen de diferentes
funciones, necesito unir estas consultas en una sola para
devolverla a la capa superior. Mi pregunta es si esto se
puede realizar usando cursores o definitivamente necesito
utilizar tipos <table> para poder tener la funcionalidad
que necesito.

Gracias te antemano.

Atte,
German G.
Respuesta Responder a este mensaje
#2 Javier Loria
14/05/2004 - 04:17 | Informe spam
Hola German:
En teoria no deberias necesitar ninguna, de las opciones:
Si las consultas debes unirse como filas usas en UNION o el UNION
ALL
Si las consultas deben "combinarse" entonces debes usar el JOIN.
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.
German escribio:
Saludos,

Necesito unir varias consultas en un procedimiento
almacenado, las consultas provienen de diferentes
funciones, necesito unir estas consultas en una sola para
devolverla a la capa superior. Mi pregunta es si esto se
puede realizar usando cursores o definitivamente necesito
utilizar tipos <table> para poder tener la funcionalidad
que necesito.

Gracias te antemano.

Atte,
German G.
Respuesta Responder a este mensaje
#3 German
14/05/2004 - 16:33 | Informe spam
Tengo un arbol de usuarios los cuales forman una
jerarquia administrativa. Necesito que desde una consulta
me devuelva todas las facturas de un usuario determinado
incluyendo todas las facturas emitidas de los usuarios
que el tiene a cargo.




Hola, cursores? que es lo que necesitas hacer


exactamente ?

Un abrazo


Salu2

Maxi

Desarrollador 3 estrellas .NET
Buenos Aires - Argentina

MSN:

"German" escribió


en el mensaje
news:cf2c01c43939$f88436f0$
Saludos,

Necesito unir varias consultas en un procedimiento
almacenado, las consultas provienen de diferentes
funciones, necesito unir estas consultas en una sola




para
devolverla a la capa superior. Mi pregunta es si esto




se
puede realizar usando cursores o definitivamente




necesito
utilizar tipos <table> para poder tener la




funcionalidad
que necesito.

Gracias te antemano.

Atte,
German G.




.

Respuesta Responder a este mensaje
#4 Maxi
14/05/2004 - 17:31 | Informe spam
Hola, para eso no es necesario cursores ni mucho menos!! con usar
subconsultas estaras muy bien, revisa en tus manuales on line como se hace
:-)

Un abrazo


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"German" escribió en el mensaje
news:d43001c439c0$6d91eb00$
Tengo un arbol de usuarios los cuales forman una
jerarquia administrativa. Necesito que desde una consulta
me devuelva todas las facturas de un usuario determinado
incluyendo todas las facturas emitidas de los usuarios
que el tiene a cargo.




Hola, cursores? que es lo que necesitas hacer


exactamente ?

Un abrazo


Salu2

Maxi

Desarrollador 3 estrellas .NET
Buenos Aires - Argentina

MSN:

"German" escribió


en el mensaje
news:cf2c01c43939$f88436f0$
Saludos,

Necesito unir varias consultas en un procedimiento
almacenado, las consultas provienen de diferentes
funciones, necesito unir estas consultas en una sola




para
devolverla a la capa superior. Mi pregunta es si esto




se
puede realizar usando cursores o definitivamente




necesito
utilizar tipos <table> para poder tener la




funcionalidad
que necesito.

Gracias te antemano.

Atte,
German G.




.






Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.676 / Virus Database: 438 - Release Date: 03/05/2004
Respuesta Responder a este mensaje
#5 ulises
14/05/2004 - 18:38 | Informe spam
Tal vez este ejemplo te ayude :

create table tablajerarquia ( usuario int primary key,
nombre varchar(30),
superior int,
nivel int )
create table facturas ( nrofactura int,
datos char(10),
usuario int )
go
insert into tablajerarquia values ( 1, 'JEFAZO', 0,1 )
insert into tablajerarquia values ( 2, 'JEFITO 1', 1,2 )
insert into tablajerarquia values ( 3, 'JEFITO 2', 1,2 )
insert into tablajerarquia values ( 4, 'SUBJEFITO 1-1',
2,3 )
insert into tablajerarquia values ( 5, 'SUBJEFITO 1-2',
2,3 )
insert into tablajerarquia values ( 6, 'SUBJEFITO 1-3',
2,3 )
insert into tablajerarquia values ( 7, 'SUBJEFITO 2-1',
3,3 )
insert into tablajerarquia values ( 8, 'SUBJEFITO 2-2',
3,3 )
go
insert into facturas values ( 1, 'datos de 1', 4 )
insert into facturas values ( 2, 'datos de 2', 5 )
insert into facturas values ( 3, 'datos de 3', 6 )
insert into facturas values ( 4, 'datos de 4', 2 )
insert into facturas values ( 5, 'datos de 4', 3 )
insert into facturas values ( 6, 'datos de 5', 7 )
go
CREATE FUNCTION dbo.obtienedependientes
( @usuario int )
RETURNS @tablita TABLE
( usuario int, nivel int )
AS
BEGIN
DECLARE @maxnivel int
DECLARE @minnivel int
SELECT @maxnivel = MAX(nivel) FROM tablajerarquia
SELECT @minnivel = nivel FROM tablajerarquia WHERE usuario
= @usuario
INSERT INTO @tablita VALUES ( @usuario, @minnivel )
WHILE ( @minnivel < @maxnivel )
BEGIN
SET @minnivel = @minnivel + 1
INSERT INTO @tablita
SELECT usuario, nivel FROM tablajerarquia
WHERE superior in ( SELECT usuario FROM @tablita WHERE
nivel = @minnivel-1 )
END
RETURN
END

ahora con el siguiente select obtengo las facturas del
usuario y sus dependientes :

select * from facturas
where usuario in ( select usuario from
dbo.obtienedependientes(2) )

resultado :

nrofactura datos usuario
1 datos de 1 4
2 datos de 2 5
3 datos de 3 6
4 datos de 4 2

(4 row(s) affected)

Saludos,
Ulises

Tengo un arbol de usuarios los cuales forman una
jerarquia administrativa. Necesito que desde una consulta
me devuelva todas las facturas de un usuario determinado
incluyendo todas las facturas emitidas de los usuarios
que el tiene a cargo.

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida