cancel
Showing results for 
Search instead for 
Did you mean: 

Query Ayuda

Former Member
0 Kudos

Buen dia.

Estoy tratando de hacer un query de ordenes de venta con las tablas ORDR y RDR1

En la RDR1 esxite un campo llamado U_Destino en el cual estan definidos varios destinos de la siguiente manera

1 Mexico

2 Veracruz

3 Tamaulipas

Al poner el campor U_Destino en el query el resultado es el numero en lugar del nombre es decir aparece 1 en lugar de mexico, 2 en lugar de veracruz y 3 en lugar de tamaulipas.

La causa es porque estos datos estan dentro una tabla que se llama @destinos con dos culumnas llamadas codigo y destinos,

cuando pongo el moause sobre ellas la informacion del sistemas muestra lo sigueinte

@destinos,name

@destinos,Code

Como puedo agregar el la columna de name en el query para que se muestre en lugar de la columna de codigo.

Gracias

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

SI, si me sirve solo que no se como.

Utilice la 2 de floyola opcion que me pusieron arriba porque con los case tendia que poner unos 50 ya que son 50 destino aproximadamente.

La opcion de las base de datos sirve pero cuando pongo un Where me marca error en el SAP.

Este es el query que llevo


SELECT T0.[DocNum] 'Num. OV', T0.[TaxDate] AS 'Fecha de documento', T0.[CardCode] AS 'Código Cliente', T0.[CardName] AS 'Nombre Cliente', T0.[ShipTocode] AS 'Destinatario', T0.[PayToCode] AS 'Destinatario de Factura', T0.[Grosprofit] AS 'Total ML', T0.[NumAtCard]'Referencia', T0.[U_Unidad]'Unidad', T1.[U_NumBultos] 'Numero Bultos', T1.[U_U_Peso] 'Peso', T2.[Name] 'Destino' FROM  ORDR T0 
INNER JOIN RDR1 T1 ON T0.[DocEntry] = T1.[DocEntry] LEFT JOIN [dbo].[@Destinos] T2 ON T1.[U_Destino] = T2.[Code] WHERE T0.TaxDate >= [%0] AND T0.TaxDate <= [%1]

Cuando habilito el where el error que muestra es

Micrsoft SqlNAtive client Sql Server Must specify table to select from. 2)

Micrsoft SqlNAtive client Sql Server statement contratos de servicio (octr) could not be prepared

former_member188440
Active Contributor
0 Kudos

Cual es la razon del left join?

felipe_loyolarodriguez
Active Contributor
0 Kudos

Pruebalo asi


SELECT T0.[DocNum] 'Num. OV', T0.[TaxDate] AS 'Fecha de documento', T0.[CardCode] AS 'Código Cliente', T0.[CardName] AS 'Nombre Cliente', T0.[ShipTocode] AS 'Destinatario', T0.[PayToCode] AS 'Destinatario de Factura', T0.[Grosprofit] AS 'Total ML', T0.[NumAtCard]'Referencia', T0.[U_Unidad]'Unidad', T1.[U_NumBultos] 'Numero Bultos', T1.[U_U_Peso] 'Peso', T2.[Name] 'Destino' 
FROM  [dbo].[ORDR] T0 
INNER JOIN [dbo].[RDR1] T1 ON T0.[DocEntry] = T1.[DocEntry] 
LEFT JOIN [dbo].[@Destinos] T2 ON T1.[U_Destino] = T2.[Code] 
WHERE T0.TaxDate >= '[%0]' AND T0.TaxDate <= '[%1]'

Slds

Answers (2)

Answers (2)

former_member188440
Active Contributor
0 Kudos

Y si te traes el campo [NAME], no te sirve?

felipe_loyolarodriguez
Active Contributor
0 Kudos

Que tal

Tienes 2 formas

1) La primera es con un CASE, ejemplo


SELECT T0.DocEntry, T1.ItemCode, 
CASE T1.U_DESTINO
WHEN '1' THEN 'Mexico'
WHEN '2' THEN 'Veracruz'
WHEN '3' THEN 'Tamaulipas'
END 'Destino'
FROM ORDR T0
INNER JOIN RDR1 T1 ON T1.DocEntry=T0.DocEntry

2) La segunda es colocar el campo desde la tabla de usuario


SELECT T0.DocEntry, T1.ItemCode, T2.Name'Destino'
FROM ORDR T0
INNER JOIN RDR1 T1 ON T1.DocEntry=T0.DocEntry
LEFT JOIN [dbo].[@Destinos] T2 ON T2.Code=T1.U_Destino

Slds