SQL Server - Solucion de Cursores y Variable Tabla (Northwind)

 
Vista:
sin imagen de perfil
Val: 10
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Solucion de Cursores y Variable Tabla (Northwind)

Publicado por Renato (3 intervenciones) el 24/02/2021 04:19:58
I.- Comando Insert, Cursores: Genera el script para dar solución a la siguiente petición.

a) Crear una variable de tipo tabla, la cual deberá contener los campos: OrderID, CustomerID, OrderDate, ShipAddress, ShipCity (tomar en cuenta la tabla Orders).

b) Generar por medio de un cursor una sentencia que permita tomar los datos de la tabla Orders con excepción del campo OrderId, el cual será calculado como un consecutivo e iniciará en 10 y su valor incremental será de 5, considerar crear una variable Numero.

c) De la tabla Orders filtrar por el campo CustomerID donde sea igual a ‘VICTE’

d) Al finalizar mostrar los datos de la tabla temporal con un comando SELECT
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Solucion de Cursores y Variable Tabla (Northwind)

Publicado por Isaias (4558 intervenciones) el 25/02/2021 22:03:38
¿Es una especie de tarea?, ¿Que avance llevas?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 10
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Solucion de Cursores y Variable Tabla (Northwind)

Publicado por Roberto (3 intervenciones) el 02/03/2021 03:52:05
Tengo un avance, pero creo que no cumple al 100 con los puntos solicitados ya que no estoy generando una Variable Numero, además de que el calculo para que el ID incrmente de 5 en 5 lo hago con el Identity declarado en la Variable Tabla

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
--DECLARACIÓN DE VARIABLE TIPO TABLA
declare @TempTable as table
(OrderID int identity (10,5) not null, CustomerID nvarchar(5), OrderDate datetime, ShipAddress nvarchar(60), ShipCity nvarchar (15))
--INSERTAR DATOS EN LA VARIABLE TIPO TABLA
insert into @TempTable (CustomerID,OrderDate,ShipAddress,ShipCity)
select o.CustomerID,o.OrderDate,o.ShipAddress,o.ShipCity
from dbo.Orders o
where o.CustomerID = 'VICTE'
--DECLARA CURSOR
declare micursor2 cursor scroll
	for select * from @TempTable
--ABRIR CURSOR
open micursor2
--EJECUTA CURSOR
fetch next from micursor2
--cerrar cursor
close micursor2
--liberar cursor
deallocate micursor2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Solucion de Cursores y Variable Tabla (Northwind)

Publicado por Isaias (4558 intervenciones) el 02/03/2021 16:40:16
Según entiendo en el ciclo del cursor deberias incrementar una variable de tipo numérico, abres un cursor, no haces nada y lo cierras. Nunca se habla de un campo IDENTITY, ¿Dónde queda el SELECT que muestra lo que hiciste con la variable tipo table?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 10
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Solucion de Cursores y Variable Tabla (Northwind)

Publicado por Roberto (3 intervenciones) el 23/03/2021 03:54:01
Creo que por fin quedó, pero me cuesta un poco entender el tema de cursores...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
declare @table1 table (OrdrID int, CustomerID nchar(5), OrderDate date, ShipAddress varchar(250), ShipCity varchar(100));
--DECLARA VARIABLE NUMERO Y VARIABLES PARA TABLA
declare @Numero int=10,
		@CustomerID nchar(5),
		@OrderDate date,
		@ShipAddress nvarchar(60),
		@ShipCity nvarchar(15)
--DECLARA CURSOR
declare ordenes cursor
	for select o.CustomerID,o.OrderDate,o.ShipAddress,o.ShipCity
		from dbo.Orders o
		where o.CustomerID='VICTE'
--ABRIR CURSOR
open ordenes
--EJECUTAR CURSOR
fetch next from ordenes into @CustomerID,@OrderDate,@ShipAddress,@ShipCity
while (@@FETCH_STATUS=0)
	begin
		insert into @table1 select @Numero,@CustomerID,@OrderDate,@ShipAddress,@ShipCity
		set @Numero = @Numero + 5
		fetch next from ordenes into @CustomerID,@OrderDate,@ShipAddress,@ShipCity
	end
--CIERRA CURSOR
close Ordenes
--LIBERA MEMORIA
deallocate Ordenes
--SELECT PARA VARIABLE TABLA
select * from @table1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar