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]
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