Query seguimiento de Orden hasta la factura

Me podrías mostrar una imagen de lo que hiciste por favor. ¡Gracias!

image

Los campos definidos por el usuario no los utilicé ya que no son parámetros en mi BD.

Revisa mi ejemplo y me cuentas.

1 me gusta

Te adjunto @Juanag

SELECT T0.“CardCode”, T0.“CardName”, T0.“DocNum”,T0.“DocDate”, T0.“DocTime”
FROM ORDR T0 all SELECT T1.“CardCode”, T1.“CardName”, T1.“DocNum”, T1.“DocDate”, T1.“U_LD_Respons1”, T1.“U_LD_Clase1”, T1.“DocTime”
FROM ODLN T1 all SELECT T2.“CardCode”, T2.“CardName”, T2.“DocNum”, T2.“DocDate”, T2.“DocTime”, T2.“U_LD_Hora1”
FROM OINV T2

No se si así esta bien o hay error en la sintaxis.

@Juanag este Query es en sql o hana te comento tenemos HANA no se si es lo mismo

Tengo entendido que es lo mismo… De igual forma prueba y si no te funciona tendrías que googlear como se aplica esa condición en HANA.

Me cuentas por favor como te va.

1 me gusta

@Juanag lo ejecute y no me hizo nada sera que existe alguna herramienta para validar.

Hola. Tengo entendido que para usar el UNION ALL es necesario que sea exactamente igual la consulta, prueba colocando los mismos valores en las 3 consultas.

2 Me gusta

Hola @Mike1 pero si son tablas diferentes como procedo por ejemplo tengo la ORDR OINV ODLN son tres diferentes habrá problema??

Casi todas las tablas de los documentos de marketing tienen los mismos campos incluso si creas un campo definido por el usuario este se coloca en todos los documentos. En caso que no contenga ningún valor el campo en el documento donde realizas la consulta te mostrará en NULL.

1 me gusta

Lo ejecute así

SELECT T0.“CardCode”, T0.“CardName”, T0.“DocNum”,T0.“DocDate”, T0.“DocTime”
FROM ORDR T0 union all SELECT T1.“CardCode”, T1.“CardName”, T1.“DocNum”, T1.“DocDate”, T1.“U_LD_Respons1”, T1.“U_LD_Clase1”, T1.“DocTime”
FROM ODLN T1 union all SELECT T2.“CardCode”, T2.“CardName”, T2.“DocNum”, T2.“DocDate”, T2.“DocTime”, T0.“U_LD_Hora1”
FROM OINV T2

Y no me muestra nada.

@LuiskSiles efectivamente, ese es el problema por el cual no muestra nada tienes que tener la misma cantidad de campos con lo que ha dicho Miguel se resolverá tu problema.

Prueba algo asi:

SELECT T0."CardCode", T0."CardName", T0."DocNum",T0."DocDate",  T0."DocTime" , T0."U_LD_Respons1", T0."U_LD_Clase1",  T0."U_LD_Hora1" 
FROM ORDR T0

UNION ALL

SELECT T0."CardCode", T0."CardName", T0."DocNum", T0."DocDate", T0."U_LD_Respons1", T0."U_LD_Clase1", T0."DocTime",  T0."U_LD_Hora1" 
FROM ODLN T0

UNION ALL

SELECT T0."CardCode", T0."CardName", T0."DocNum", T0."DocDate", T0."DocTime", T0."U_LD_Hora1" , T0."U_LD_Respons1", T0."U_LD_Clase1"
FROM OINV T0

Si yo ejecuto la consulta sin los campos definidos por el usuario me muestra la información. Aunque para serte sincero no me gusta como se presenta la información.

1 me gusta

Hola @LuiskSiles, la forma en que lo estas realizando es buena, te muestro la forma en la que yo la realizaría, a mi punto de vista es mas cómoda. Te adjunto el script colocale los campo que necesites y nos cuentas como te fue.

Select 'Orden de Venta'[Tipo Documento], T0.DocNum, T0.CardName, T1.ItemCode, T1.Dscription, 
	   'Entrega de Venta'[Tipo Doumento Destino], T3.DocNum, T3.CardName, T2.ItemCode, T2.Dscription,
	   'Facturas de venta'[Tipo Doumento Destino], T5.DocNum, T5.CardName, T4.ItemCode, T4.Dscription
	From ORDR T0 Inner join -- Encabezado de Orden de venta
		 RDR1 T1 on T0.DocEntry = T1.DocEntry Inner Join --Detalle de Orden de venta
		 DLN1 T2 on T1.DocEntry = T2.BaseEntry and T1.LineNum = T2.BaseLine inner join --Detalle Entrega de venta
		 ODLN T3 on T2.DocEntry = T3.DocEntry inner join -- Encabezado Entrega de venta
		 INV1 T4 on T2.DocEntry = T4.BaseEntry and T2.LineNum = T4.BaseLine and T2.ItemCode = T4.ItemCode inner join --Detalle de la Factura de venta
		 OINV T5 on T4.DocEntry = T5.DocEntry
Where T0.DocNum = '86544' -- Este filtro lo puedes cambiar por fechas o el campo que necesites filtrar

Saludos Cordiales

4 Me gusta

HoLa @CJPG YA LO EJECUTE PERO NO ME MOSTRO NADA

hola @LuiskSiles, en el Where quita T0.DocNum = ‘86544’ y coloca T0.DocDate >=‘20190101’ ,
y cuentanos como te va.
No te muestra nada porque esta haciendo un filtro por numero de documento, que yo coloque y el numero 86544 no existe en tu base de datos en las OV pero colocale que te indico y vuelve a probar.

Saludos.

1 me gusta

Sin duda es la mejor opción.

2 Me gusta

Buenas estimados como seguimiento les comento lo siguiente:

El query que se me genero es el siguiente:

SELECT T0.“CardCode”, T0.“CardName”, T0.“DocNum”,T0.“DocDate”, T0.“DocTime”, T0.“U_LD_Respons1”, T0.“U_LD_Clase1”, T0.“U_LD_Hora1”
FROM ORDR T0

UNION ALL

SELECT T0.“CardCode”, T0.“CardName”, T0.“DocNum”,T0.“DocDate”, T0.“DocTime”, T0.“U_LD_Respons1”, T0.“U_LD_Clase1”, T0.“U_LD_Hora1”
FROM ODLN T0

UNION ALL

SELECT T0.“CardCode”, T0.“CardName”, T0.“DocNum”,T0.“DocDate”, T0.“DocTime”, T0.“U_LD_Respons1”, T0.“U_LD_Clase1”, T0.“U_LD_Hora1”
FROM OINV T0

image

pero hay un dilema la columna donde me muestra la hora me esta mostrando todo en linea y no separado por la columna por ejemplo me esta mostrando en la misma columna la hora de creación de orden de venta la hora de alisto y la hora de la creacion de la factura existira forma de separarlo???

Hola @LuiskSiles, lamento informarte que lo que solicitas no es posible, como utilizas un script con union no es posible hacerlo, por tal motivo yo te mostré un script que realiza lo que solicitas, pero al parecer no lleno tus requerimientos.

Saludos

Justo a esto me refería cuando comente que no me gustaba como se presenta la información.

Query seguimiento de Orden hasta la factura - nº 15 por Mike1

Deberías probar de nuevo con el script de @CJPG, la cuestión es esto es hacer correctamente los JOIN entre las tablas para que no te valla a mostrar información descabellada. Haz la prueba y nos comentas como te sale.

2 Me gusta

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