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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-09-2011
Avatar de orioncomputer
orioncomputer orioncomputer is offline
Miembro
 
Registrado: may 2006
Ubicación: Maturin, Monagas, Venezuela
Posts: 18
Poder: 0
orioncomputer Va por buen camino
Smile Agrupar de forma condicionada??????

Saludos, Amigos del Club
En Una oportunidad publique una inquietud muy parecida a esta, no logre conseguir una solución y la abandone, pero me ha vuelto la necesidad de recurrir a este foro y plantear de nuevo la inquietud , quizás un poco mas detallada, para ver si entre todos logramos obtener el resultado deseado, ya que en la oportunidad anterior se rompió el hilo, por problemas con el foro y no logre recuperar las respuestas que me habían logrado dar.

Bueno planteo mi inquietud.....

Código:
TipoFac NumeroP    Nombre                                                       TipoCli        NumeroF                 NumeroReal Monto
------- ---------- ------------------------------------------------------------ -------------- ----------------------- ---------- ---------------------------------------
A       Z4A8086521 COPESIRA, C.A                                                Contibuyente   00040263                00040263   173.400
A       Z4A8086521 UNIDAD EDUCATIVA FERMIN TORO                                 Contibuyente   00040264                00040264   338.000
A       Z4A8086521 Ventas Diarias                                               NoContibuyente 00040265 - 00040265     00040265   267.340
A       Z4A8086521 ASOC. COOP. AMBARCA R.L                                      Contibuyente   00040266                00040266   601.450
A       Z4A8086521 CONSEJO COMUNAL CRUZ PERAZA I                                Contibuyente   00040267                00040267   69.360
A       Z4A8086521 Ventas Diarias                                               NoContibuyente 00040268 - 00040268     00040268   213.740
A       Z4A8086521 Ventas Diarias                                               NoContibuyente 00040269 - 00040269     00040269   1597.400
A       Z4A8086521 Ventas Diarias                                               NoContibuyente 00040270 - 00040270     00040270   4.880
A       Z4A8086521 Ventas Diarias                                               NoContibuyente 00040271 - 00040271     00040271   97.530
A       Z4A8086521 Ventas Diarias                                               NoContibuyente 00040272 - 00040272     00040272   24.930
Como verán en la tabla de resultados anterior, hay una serie de datos que limite a 10 filas y 7 Columnas, La idea en concreto de esta consulta es que me entregue agrupados los valores que sean comunes en cuanto a los datos de la columna y me sume los montos, con los valores me refiero a (TipoFac, NumeroP, Nombre, TipoCli, NumeroF y Monto) la columna NumeroReal solo la coloque para referencia, ya que los datos de esta columna van en NumeroF, pero agrupados en desde hasta, bueno les coloco mas abajo como quiero que queden los resultados:

Código:
TipoFac NumeroP    Nombre                                                       TipoCli        NumeroF                 Monto
------- ---------- ------------------------------------------------------------ -------------- ----------------------- ---------------------------------------
A       Z4A8086521 COPESIRA, C.A                                                Contibuyente   00040263                173.400
A       Z4A8086521 UNIDAD EDUCATIVA FERMIN TORO                                 Contibuyente   00040264                338.000
A       Z4A8086521 Ventas Diarias                                               NoContibuyente 00040265 - 00040265     267.340
A       Z4A8086521 ASOC. COOP. AMBARCA R.L                                      Contibuyente   00040266                601.450
A       Z4A8086521 CONSEJO COMUNAL CRUZ PERAZA I                                Contibuyente   00040267                69.360
A       Z4A8086521 Ventas Diarias                                               NoContibuyente 00040268 - 00040272     1938.480
Como ven en el cuadro anterior de la linea 6 a la 10 se agruparon y se sumaron los montos, en la columna NumeroF se coloco desde donde a donde se agruparon las Facturas, también pudieron notar que la Linea 3 no se agrupo con las lineas 6 a la 10, ya que ella esta entre dos numero de facturas que presentan características de contribuyentes, lo que quisiera es que al momento de agrupar predomine primero el orden por NumeroF, luego agrupe todas aquellas lineas en las que sean comunes los NoContribuyentes, respetando la ruptura entre Contribuyentes y NoContribuyentes, asi como se ve desde las Lineas 1 a la 5.

Este es importante para cubrir los requerimientos Tributarios de La ley Venezolana.

Abajo les muestro el codigo con el que estoy haciendo la consulta:

Código SQL [-]
SELECT  Top(10) SAFACT.TipoFac, SAFACT.NumeroP, CASE WHEN SACLIE.TipoCli = 1 THEN SAFACT.Descrip ELSE 'Ventas Diarias' END AS Nombre, 
    CASE WHEN SACLIE.TipoCli = 1 THEN 'Contibuyente' ELSE 'NoContibuyente' END AS TipoCli, 
    CASE WHEN SACLIE.TipoCli = 1 THEN SAFACT.NumeroF ELSE SAFACT.NumeroF+' - '+SAFACT.NumeroF END AS NumeroF, SUM(SAFACT.Monto) AS Monto
FROM  SAFACT LEFT OUTER JOIN
    SACLIE ON SAFACT.CodClie = SACLIE.CodClie
WHERE  (CONVERT(DATETIME, SUBSTRING(CONVERT(VARCHAR, SAFACT.FechaE, 120), 1, 10), 120) = CONVERT(DATETIME, '2011-09-14 00:00:00', 102))
GROUP BY SAFACT.TipoFac, SACLIE.TipoCli, CASE WHEN SACLIE.TipoCli = 1 THEN SAFACT.Descrip ELSE 'Ventas Diarias' END, CONVERT(DATETIME, 
    SUBSTRING(CONVERT(VARCHAR, SAFACT.FechaE, 120), 1, 10), 120), SAFACT.NumeroP, CASE WHEN SACLIE.TipoCli = 1 THEN SAFACT.NumeroF ELSE 'N/A' END, 
    SAFACT.NumeroF, SAFACT.Monto
HAVING  (SAFACT.TipoFac = 'A')
ORDER BY SAFACT.NumeroF

Como verán están involucradas dos tablas, una de donde saco la información del cliente, si es o no contribuyente y de la otra la información del resto de la factura.

Agradeciendo de Antemano el tiempo tomado para leer mi inquietud y también las gracias por ayudarme a resolver este dilema en el que me encuentro.

Atentamente,

Franklin Gonzalez.
Responder Con Cita
  #2  
Antiguo 16-09-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
no los agrupara porque la Columna NumeroF tiene valores diferente
acuerdate que en el Group se colocan los criterios para la agrupacion, pero se debe tener en cuenta los datos

Ejemplo
Cita:
Campo1 Campo2 Campo3
A B 1
C B 2
A C 3
Si agrupo Solo por el Campo1 tendre
Cita:
A 4
C 2
Si Agrupo por el campoA + CampoB tendre
Cita:
Campo1 Campo2 Campo3
A B 1
A C 3
C B 2
Quiza debas encontrar otra condicional para la agrupacion (podria ser tipo de Cliente)
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #3  
Antiguo 16-09-2011
Avatar de orioncomputer
orioncomputer orioncomputer is offline
Miembro
 
Registrado: may 2006
Ubicación: Maturin, Monagas, Venezuela
Posts: 18
Poder: 0
orioncomputer Va por buen camino
Saludos,
Gracias Oscarac por tu pronta respuesta y por tomarte el tiempo para leer mi inquietud.
Yo estoy claro de como funciona la sentencia agrupar, quizás al final debí aclarar que realmente estoy interesado en obtener un resultado como el señalado, no se si quizás hacer dos consultas o utilizar otra forma, pero al resultado que quiero llegar es que me las ordene por "NumeroF" o por lo menos este sea tomado en cuenta para respetar el orden de aparición de los resultados, luego me vaya mostrando bajo la condición "TipoCli" los valores agrupados, solo si este posee el valor de "0" o para los efectos visuales de "NoContribuyente", haga un alto al conseguir un valor "TipoCli = 1" y seguidamente al conseguir valores consecutivos bajo la misma condición, nuevamente me muestre valores agrupados.

Espero haber aclarado o ampliado un poco mas la inquietud señalada.

Gracias mil a todos por detenerse a revisar y aportar sus ideas.
Responder Con Cita
  #4  
Antiguo 16-09-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
entonces me parece que debes utilizar otro recurso

quiza utilizando ClientDataset

tienes tu query donde jalas los datos sin agrupar y en el clientdataset lo vas ordenando de acuerdo a como tu quieres (Adicionando registros, editandolos, etc)
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #5  
Antiguo 16-09-2011
Avatar de orioncomputer
orioncomputer orioncomputer is offline
Miembro
 
Registrado: may 2006
Ubicación: Maturin, Monagas, Venezuela
Posts: 18
Poder: 0
orioncomputer Va por buen camino
Gracias nuevamente por tu pronta respuesta

Realmente lo quería en Sql ya que quería generar una vista e incorporarlo al ReportBuilder, pero voy a buscarle la vuelta creando cortes de control en el ReportBuider a ver como me va, gracias a tu comentario se me ocurre quizás que pueda.

Mil Gracias de Nuevo......
Responder Con Cita
  #6  
Antiguo 26-09-2011
abelg abelg is offline
Miembro
 
Registrado: jul 2004
Posts: 50
Poder: 20
abelg Va por buen camino
con que servidor de base de Datos estas trabajando porque si es Sql Server, se puede hacer, un cursor u otra cosa, nose me dices asi te lo puedo ver que se puede hacer.
Responder Con Cita
Respuesta



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 21:15:05.


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