Ayuda SAP

Datos query duplicados

Etiquetas: #<Tag:0x00007f7263db3288>

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

2 Me gusta