cancel
Showing results for 
Search instead for 
Did you mean: 

Ayuda en un Query

Former Member
0 Kudos

Jovenes, realice un query en el cual me desplegara facturas de ventas, las facturas como servicios, Notas de credito contables, las exentas, Debito Fiscal, y Bienes, pero tengo un problemas al momento de ejecutar el query me desplega lo que es pero hay facturas que las duplica y no se porque ya revise todo y a mi parecer esta correcto, espero me puedan ayudar, e indicarme en donde esta mi error.

Query

SELECT	T0.[DocNum] AS 'Numero Documento', 
		T0.[DocDate] AS 'Fecha Contabilizacion',
		T0.[NumAtCard] AS 'Numero de Referencia',
		T0.[U_SerieDoc] AS 'Serie Factura',
		T0.[U_NumDoc] AS 'Numero Factura',
		T0.[CardName] AS 'Nombre Cliente',
		T1.[U_Nit] AS 'NIT',		
	Case
		When T2.[U_Tipo_Venta] like '%B%' THEN SUM(T2.LineTotal)
		Else 0
	End 'Bienes',
	CASE 
		When T2.[U_Tipo_Venta] LIKE '%S%' THEN SUM(T2.LineTotal)
		Else 0
	END 'Servicios',
	Case
		When T3.[Series]= '3'  Then (T3.[VatSum])*-1
		
		Else 0
	End 'Notas de Credito',
	CASE
		When T2.VatPrcnt = 12 THEN (T0.VatSum)
		Else 0
	END AS 'IVA Debito Fiscal',
	CASE
		When T2.[TaxCode] LIKE '%EXE%' THEN sum(T2.[LineTotal])
		Else 0
	END 'Exento'
FROM OINV T0  
	INNER JOIN OCRD T1 ON T0.CardCode = T1.CardCode 
	INNER JOIN INV1 T2 ON T0.DocEntry = T2.DocEntry 
	INNER JOIN ORIN T3 ON T1.CardCode = T3.CardCode 
WHERE	T0.[CardCode] Like '%C%'  and  
		T0.[DocDate] >= '20100801' and  
		T0.[DocDate] <= '20100831' 
				
GROUP BY T0.[DocNum], T0.[DocDate], T0.[NumAtCard],T0.[U_SerieDoc], T0.[U_NumDoc],  
                   T0.[CardName], T2.[U_Tipo_Venta], T1.[U_Nit],T2.[TaxCode],T2.VatPrcnt,
                   T0.VatSum, T3.[Series], T3.[VatSum],T0.[DocTotal],T0.[CardCode]
ORDER BY T0.[CardName], T0.[U_SerieDoc], T0.[DocDate] 

De antemano muy agradecido por su ayuda.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hola, te sirve si le agregas DISTINCT


SELECT	DISTINCT T0.DocNum AS 'Numero Documento', 
T0.DocDate AS 'Fecha Contabilizacion',
T0.NumAtCard AS 'Numero de Referencia',
T0.U_SerieDoc AS 'Serie Factura',
T0.U_NumDoc AS 'Numero Factura',
T0.CardName AS 'Nombre Cliente',
T1.U_Nit AS 'NIT',	
Case
When T2.U_Tipo_Venta like '%B%' THEN SUM(T2.LineTotal)
Else 0
End 'Bienes',
CASE 
When T2.U_Tipo_Venta LIKE '%S%' THEN SUM(T2.LineTotal)
Else 0
END 'Servicios',
Case
When T3.Series= '3' Then (T3.VatSum)*-1


Else 0
End 'Notas de Credito',
CASE
When T2.VatPrcnt = 12 THEN (T0.VatSum)
Else 0
END AS 'IVA Debito Fiscal',
CASE
When T2.TaxCode LIKE '%EXE%' THEN sum(T2.LineTotal)
Else 0
END 'Exento'
FROM OINV T0 
INNER JOIN OCRD T1 ON T0.CardCode = T1.CardCode 
INNER JOIN INV1 T2 ON T0.DocEntry = T2.DocEntry 
INNER JOIN ORIN T3 ON T1.CardCode = T3.CardCode 
WHERE	T0.CardCode Like '%C%' and 
T0.DocDate >= '20100801' and 
T0.DocDate <= '20100831' 


GROUP BY T0.DocNum, T0.DocDate, T0.NumAtCard,T0.U_SerieDoc, T0.U_NumDoc, 
T0.CardName, T2.U_Tipo_Venta, T1.U_Nit,T2.TaxCode,T2.VatPrcnt,
T0.VatSum, T3.Series, T3.VatSum,T0.DocTotal,T0.CardCode
ORDER BY T0.CardName, T0.U_SerieDoc, T0.DocDate 

Saludos

Former Member
0 Kudos

Gracias Quintaro soluciones la duplicidad de las facturas, una ultima duda y no la coloque en la primera consulta, pero al momento de generarlo lo que es la columna de las Notas de credito no esta respetando la fecha alguien me podría indicar como soluciono este problema.

De antemano muy agradecido.

Former Member
0 Kudos

Hola

Te faltaria acotar ORIN T3


T3.DocDate >= '20100801' and 
T3.DocDate <= '20100831' 
 

Saludos.

Former Member
0 Kudos

Gracias Quintaro, una ultima consulta hay notas de credito que son denominadas como Internas esto quiere decir que no deben de aparecer en el reporte pero estas si aparecen y aparecen como Servicios y como Exentos, hay alguna forma de quitarlos tanto de Servicios como de Exentos.

Con respecto a las fechas te lo agradezco si funciono pero si yo deseo asignarle que pregunte las fechas hay alguna forma que solo la pregunte una vez y las tome en las dos tablas. Si se pudiera sino asi lo dejaría.

Agradezco tu tiempo y tu ayuda.

Former Member
0 Kudos

Hola, como comentario, generalmente es una pregunta a la vez, debe identificar el campo que los hace diferentes y filtrarlos quiza un DocSubType, series, o algo similar.

Para limitar la busqueda, puede definirlo así


T0.DOCDATE>= [%0] and T0.DOCDATE<=[%1] and T3.DOCDATE>= [%0] and T3.DOCDATE<=[%1] 

Saludos.

Former Member
0 Kudos

Gracias Quintaro te agradezco tu ayuda y tu tiempo, fue bastante util.

Saludos Cordiales

Felices Fiestas de fin de añ

Answers (0)