Datos query duplicados

Buen dia tengo el siguiente query para las ventas del ems con detalles del socio de negocios pero me duplica la informacion, agradezco la ayuda con esto

SELECT T0.[CardCode], T0.[CardName], T0.[VatIdUnCmp], T2.[ItemCode], T2.[Dscription], T2.[Quantity], T1.[DocDate], T1.[DocNum], T0.[MailAddres], T0.[City], T0.[Country], T2.[Currency], T2.[unitMsr], T2.[StockPrice], T5.[City] 
FROM [dbo].[OCRD]  T0 
INNER JOIN [dbo].[OINV]  T1 ON T0.[CardCode] = T1.[CardCode] 
INNER JOIN [dbo].[INV1]  T2 ON T1.[DocEntry] = T2.[DocEntry] 
INNER JOIN [dbo].[OITM]  T3 ON T2.[ItemCode] = T3.[ItemCode] 
INNER JOIN [dbo].[OITB]  T4 ON T3.[ItmsGrpCod] = T4.[ItmsGrpCod] 
INNER JOIN [dbo].[CRD1]  T5 ON T0.[CardCode] = T5.[CardCode] 
INNER JOIN OITW T6 ON T3.[ItemCode] = T6.[ItemCode] 
WHERE T1.[DocDate] BETWEEN [%0] AND [%1] 
ORDER BY T1.[CardName], T1.[DocDate]

@Diego_Mao_Pin Buen dia Diego hay que pasarse primero por las #presentaciones. Si no ignoraran tu tema.

Trata con esto

SELECT   T0.[CardCode], T0.[CardName], T0.[VatIdUnCmp], T2.[ItemCode], T2.[Dscription], T2.[Quantity], T1.[DocDate], T1.[DocNum], T0.[MailAddres], T0.[City], T0.[Country], T2.[Currency], T2.[unitMsr], T2.[StockPrice], T5.[City] 
FROM [dbo].[OCRD]  T0 
INNER JOIN [dbo].[OINV]  T1 ON T0.[CardCode] = T1.[CardCode] 
INNER JOIN [dbo].[INV1]  T2 ON T1.[DocEntry] = T2.[DocEntry] AND  T2.LineNum=0
INNER JOIN [dbo].[OITM]  T3 ON T2.[ItemCode] = T3.[ItemCode] 
INNER JOIN [dbo].[OITB]  T4 ON T3.[ItmsGrpCod] = T4.[ItmsGrpCod] 
INNER JOIN [dbo].[CRD1]  T5 ON T0.[CardCode] = T5.[CardCode] 
INNER JOIN OITW T6 ON T3.[ItemCode] = T6.[ItemCode] 
ORDER BY T1.[CardName], T1.[DocDate]

usa el Distinct

saludos

1 me gusta

Podrías usar:
Select Distinct …
Saludos fraternos.

El lugar de inner usa left.

SELECT T0.[CardCode], T0.[CardName], T0.[VatIdUnCmp], T2.[ItemCode], T2.[Dscription], T2.[Quantity], T1.[DocDate], T1.[DocNum], T0.[MailAddres], T0.[City], T0.[Country], T2.[Currency], T2.[unitMsr], T2.[StockPrice], T5.[City]
FROM [dbo].[OCRD] T0
LEFT JOIN [dbo].[OINV] T1 ON T0.[CardCode] = T1.[CardCode]

1 me gusta

Saludos, hermano, mosca con la tabla oitw que es donde están los almacenes, veo que te va a tomar las ventas varias veces, tan vez por ello salen duplicadas agregar en el where que el almacén de oitw sea igual al almacén de dónde salen las ventas ya q si el producto se graba en varios almacénes cuando lo creas, esté va a aparecer tsntan veces como este en los almacénes, después de [%1] agregar and whscode = ‘xxxxxx’ las x sería el nombre de tu almacén de ventas si no te sirve con el between cámbialo por T1.docdate >=[%0] and T1.docdate <=[%1] and T6.whscode=‘xxxxx’
Pero, yo te recomiendo que saques ese reporté desde la tabla OINM que es donde caen las ventas y las notas de crédito ventas transtype =13 y las devoluciones transtype =14 y simplemente enlazas desde oinm-cardcode con el cardcode de ocrd, oinm-itemcode con oitm-itemcode, ocrd-slpcode con oslp-slpcode,. Veo q usas la oitb-itmsgrpcod con la oitm-itmsgrpcod, que es grupo de inventario, claro las cantidades de la OINM debés multiplicar * -1 si transtype = a ‘14’ para qué te netee las ventas, oinm-inqtyprice-1, si el transtype =‘13’ dejas las cantidades como están outqty*price
Parte desde ahí y si quieres la dirección del cliente la puedes tomar de la ocrd-address, mosca que la cdr1 puede el cliente tener varias direcciones y por ello veas el informe q se repita las ventas.bueno yo recomiendo 100 veces la OINM …ya que de ahí puedes sacar con el mismo query los movimientos de inventarios, la materia prima, el materia de empaque y todo lo q esté en esa tabla, porque ella es el mayor de inventarios y ventas
Acuérdate entonces usar el where Warehouse de OINM = al de tu almacén de dónde vendes y ahí si quieres no uses la oitw, whscode al menos q quieras q te aparezca el nombre del almacén, entonces también debés incluir en el query el mismo almacén q está en la OINM,. Bueno saludos, espero te ayude, y si sabés Crystal report úsalo

Que tal

Te duplica porque al unir la tabla CRD1 te mostrará una linea por la dirección fiscal y otra por la dirección de entrega

Intenta así

FROM OINV T0 
LEFT JOIN  CRD1 T17 ON T17.CardCode = T0.CardCode AND T0.PaytoCode = T17.Address AND t17.AdresType = 'B' --B: Tipo Domicilio Fiscal 

Saludos

3 Me gusta

Este tema se cerró automáticamente 91 días después de la última publicación. No se permiten nuevas respuestas.