create procedure relacionpedidoscliente4
as
declare @codcliente char(10),@nomcliente varchar(20),@codpedido char (10),@fechapedido datetime
declare @codprod char (10),@nomprod varchar (20),@cant decimal(9,2),
@precio decimal (7,2),@importe decimal (7,2),@totcliente decimal (7,2),@totpedido decimal(9,2),
@TotGeneral decimal(9,2)
DECLARE cur_cliente
cursor for select customerid,companyname
from customers
order by companyname
open cur_cliente
print space(20)+"Listado de pedidos por cliente"
print space(20)+replicate("-",30)
fetch next from cur_cliente
into @codcliente ,@nomcliente
SELECT @TotGeneral=0.0
while @@fetch_status=0
begin
PRINT ''
print "cliente:"+@codcliente+@nomcliente
declare cur_pedido
cursor for
select orderid,orderdate
from orders
where customerid = @codcliente
open cur_pedido
fetch next from cur_pedido
into @codpedido ,@fechapedido
SELECT @TotCliente=0.0
while @@fetch_status=0
begin
print "pedido N°:"+@codpedido+space(10)+"fecha:"+CONVERT(CHAR(10),@fechapedido,21)
declare cur_producto cursor for
select p.productid,p.productname,od.quantity,od.unitprice,od.quantity*od.unitprice
FROM Products p INNER JOIN [Order Details] od
ON p.ProductId=od.ProductId
where od.orderid=@codpedido
OPEN cur_producto
FETCH NEXT FROM cur_producto
INTO @codprod,@nomprod,@cant,@precio,@importe
PRINT SPACE(6)+'Còdigo Descripciòn del producto Cantidad Precio Importe'
PRINT REPLICATE('-',70)
SELECT @TotPedido=0.0
WHILE @@fetch_status=0
BEGIN
PRINT SPACE(6)+@codprod+' '+LEFT(@nomprod+SPACE(35),35) +' '+STR(@cant,7,2)+' '+ STR(@precio,7,2)+ ' ' +STR(@importe,7,2)
FETCH NEXT FROM cur_producto
INTO @codprod,@nomprod,@cant,@precio,@importe
SELECT @TotPedido=@TotPedido+@importe
END
PRINT SPACE(6)+REPLICATE('-',20)
PRINT SPACE(6)+'Total del pedido :S/.'+ STR(@TotPedido,9,2)
SELECT @TotCliente=@TotCliente+@TotPedido
CLOSE cur_producto
DEALLOCATE cur_producto
FETCH NEXT FROM cur_pedido
INTO @codpedido ,@fechapedido
END
PRINT REPLICATE('-',20)
PRINT 'Total del CLIENTE :S/.'+ STR(@TotCliente,9,2)
CLOSE cur_pedido
DEALLOCATE cur_pedido
fetch next from cur_cliente
into @codcliente ,@nomcliente
SELECT @TotGeneral=@TotGeneral+@TotCliente
END
CLOSE cur_cliente
DEALLOCATE cur_cliente
               (
geocities.com/es/hwfiestasb)                   (
geocities.com/es)