Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #8  
Antiguo 12-10-2011
abelg abelg is offline
Miembro
 
Registrado: jul 2004
Posts: 50
Poder: 20
abelg Va por buen camino
Hola, bueno aqui te posteo una solución espero te ayude.

Código SQL [-]
declare @TipoFac varchar(10),
  @NumeroP varchar(20),
  @Nombre varchar(100),
  @TipoCli varchar(50),
  @NumeroReal varchar(15),
  @Monto money,
  -- Para agrupar
  @Grupo int,
  @Nombreanterior varchar(100)
  

Create table #Factura  -- Esta Tabla es una representación de tu tabla real no es necesario crearla
(
  TipoFac varchar(10),
  NumeroP varchar(20),
  Nombre varchar(100),
  TipoCli varchar(50),
  NumeroF varchar(30),
  NumeroReal varchar(15),
  Monto money,
)

Create table #FacturaTmp -- Esta tabla la creas como esta
(
  TipoFac varchar(10),
  NumeroP varchar(20),
  Nombre varchar(100),
  TipoCli varchar(50),
  NumeroReal varchar(15),
  Monto money,
  Grupo int
)

insert into #Factura values('A', 'Z4A8086521', 'COPESIRA, C.A',  'Contibuyente', '00040263', '00040263',   173.400)
insert into #Factura values('A', 'Z4A8086521', 'UNIDAD EDUCATIVA FERMIN TORO', 'Contibuyente', '00040264', '00040264',   338.000)
insert into #Factura values('A', 'Z4A8086521', 'Ventas Diarias', 'NoContibuyente', '00040265 - 00040265','00040265',   267.340)
insert into #Factura values('A', 'Z4A8086521', 'ASOC. COOP. AMBARCA R.L', 'Contibuyente', '00040266', '00040266',   601.450)
insert into #Factura values('A', 'Z4A8086521', 'CONSEJO COMUNAL CRUZ PERAZA I', 'Contibuyente', '00040267', '00040267',   69.360)
insert into #Factura values('A', 'Z4A8086521', 'Ventas Diarias', 'NoContibuyente', '00040268 - 00040268','00040268',   213.740)
insert into #Factura values('A', 'Z4A8086521', 'Ventas Diarias', 'NoContibuyente', '00040269 - 00040269','00040269',   1597.400)
insert into #Factura values('A', 'Z4A8086521', 'Ventas Diarias', 'NoContibuyente', '00040270 - 00040270','00040270',   4.880)
insert into #Factura values('A', 'Z4A8086521', 'Ventas Diarias', 'NoContibuyente', '00040271 - 00040271','00040271',   97.530)
insert into #Factura values('A', 'Z4A8086521', 'Ventas Diarias', 'NoContibuyente', '00040272 - 00040272','00040272',   24.930)

declare FaturaCur Cursor For
Select TipoFac,
         NumeroP,
         Nombre,
         TipoCli,
         NumeroReal,
         Monto
from #Factura
order by NumeroReal

open FaturaCur
fetch next from FaturaCur into @Tipofac, @NumeroP, @Nombre, @TipoCli, @NumeroReal, @Monto
set @Nombreanterior = @Nombre
set @Grupo = 1

while @@FETCH_STATUS = 0 
begin
   if (@Nombreanterior <> @Nombre)
   begin
      set @Grupo = @Grupo + 1
      set @Nombreanterior = @Nombre
   end        
   insert into #FacturaTmp values (@Tipofac, @NumeroP, @Nombre, @TipoCli, @NumeroReal, @Monto, @Grupo)
   fetch next from FaturaCur into @Tipofac, @NumeroP, @Nombre, @TipoCli, @NumeroReal, @Monto                
end

close FaturaCur
deallocate FaturaCur

Select TipoFac,
         NumeroP,
         Nombre,
         TipoCli,
         CASE When MIN(NumeroReal) <> MAX(numeroReal) 
             then  MIN(NumeroReal) +    '-' + MAX(numeroReal) 
             else MIN(NumeroReal) end NumeroFactura,
         SUM(Monto) Monto
from #FacturaTmp
Group by TipoFac,
        NumeroP,
        Nombre,
        TipoCli,
        Grupo
order by
        CASE When MIN(NumeroReal) <> MAX(numeroReal) 
           then  MIN(NumeroReal) +    '-' + MAX(numeroReal)
           else MIN(NumeroReal) end


Drop table #Factura
Drop table #Facturatmp
Mira que estoy creando dos tablas temporales una es para poder simular tu tabla real la otra la uso si para la solución.
salu2

Última edición por abelg fecha: 12-10-2011 a las 16:08:03.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Pasar Variables de Forma a Forma con delphi.net ASP ASAPLTDA .NET 5 05-07-2007 20:51:31
Como Pasar Variables de Forma a Forma con delphi.net ASP ASAPLTDA Internet 2 02-07-2007 16:26:41
suma condicionada mediante QREXpr u otra solucion ciscu Impresión 6 13-01-2004 18:41:01
Como pasar parametros de una forma hija a otra forma hija luisreg OOP 3 17-09-2003 18:18:50
Agrupar ? ramiretor Impresión 1 16-05-2003 01:51:32


La franja horaria es GMT +2. Ahora son las 20:24:46.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi