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.