Pasar consulta a hana ce_functions

buenas tardes solicito su ayuda por favor para pasar esta consulta que la tengo en el QUERY MANAGER de SAP a CE_FUCNTIONS en la opciones de CALCULATION_VIEW / SQL SCRIPT / GRAPHICAL debido a que por la cantidad de join que maneja cuando la realizo me genra errores y no se como cuadrarla para que me funcione.

SELECT T2."ItemCode" AS "NOMBRE REF", T2."ItemName" AS "DESCRIPCION REF", 
sum(T1."Quantity") as "CANTIDAD DE EMPAQUE", T2."U_UNID_PRESENT" AS "UNIDAD PRESENTACION", 
SUM(T1."Quantity"*T2."U_UNID_PRESENT") AS  "TOTAL UNIDADES", T3."ItmsGrpNam" as "GRUPO" 
FROM OINV T0  INNER JOIN INV1 T1 ON T0."DocEntry" = T1."DocEntry" 
INNER JOIN OITM T2 ON T1."ItemCode" = T2."ItemCode" 
INNER JOIN OITB T3 ON T2."ItmsGrpCod" = T3."ItmsGrpCod" 
WHERE T0."CANCELED"  = 'N' AND  T0."DocDate" >=[%0] and  T0."DocDate" <=[%1] 
GROUP BY T2."ItemName", T2."ItemCode", T2."U_UNID_PRESENT",T3."ItmsGrpNam"

UNION

SELECT  T2."ItemCode" AS "NOMBRE REF", T2."ItemName" AS "DESCRIPCION REF",
sum(-T1."Quantity") as "CANTIDAD DE EMPAQUE", T2."U_UNID_PRESENT" AS "UNIDAD PRESENTACION", 
SUM(-T1."Quantity"*(-T2."U_UNID_PRESENT")) AS  "TOTAL UNIDADES", T3."ItmsGrpNam" as "GRUPO" 
FROM ORIN T0  INNER JOIN RIN1 T1 ON T0."DocEntry" = T1."DocEntry" 
INNER JOIN OITM T2 ON T1."ItemCode" = T2."ItemCode" 
INNER JOIN OITB T3 ON T2."ItmsGrpCod" = T3."ItmsGrpCod" 
WHERE T0."CANCELED"  = 'N' AND  T0."DocDate" >=[%0] and  T0."DocDate" <=[%1] 
GROUP BY T2."ItemName", T2."ItemCode", T2."U_UNID_PRESENT",T3."ItmsGrpNam"

muchas gracias amigos

Hola estimado.
Conozco poco de SQL Hana.

Revisa esto links, quiza te ayuden.

h_tp://saphanatutorial.com/sap-hana-ce-function/
h_tp://www.sapstudent.com/hana/sap-hana-calculation-view-ce-functions

Estimado @jtriana6591 tienes varios post, pendientes de responder, si en alguno de ellos ya te dieron solucion, favor de marcarlo como “solucionado”. Esto para mantener el orden en el foro.

Saludos.

hola buenos días ya he visto los tutoriales que me enviaste, pero la consulta me funciona solo cuando realizo un join entre dos tablas pero cuando necesito un join de una tercera tabla que se realicione con la primea no se como unirla ademas de eso debo realizar la union y la verdad no se como realizarlo

muchas gracias por tu ayuda

Lastimosamente no tengo una consola de SQL Hana, para hacer pruebas, pero lo que yo haría en tu caso es hacer el query mas sencillo y verificar si me funciona.

Primero hacer unicamente el primer query de la tabla OINV sin nada mas.
Si si te funciona. Agregá la INV1 y probas de nuevo,
Si si te funciona. Agregá la OITM y probas de nuevo,
Si si te funciona. Agregá la OITB y probas de nuevo.
Despues ya le agregas los filtros de WHERE
y por ultimo el groupby…si si te funciona ya te vas a probar hacer un union sencillo entre dos tablas sencillas…

Además te sugiero que pruebes tus consultas con valores fijos, sin usar las variables propias de SAP [%0] y [%1] ya que estes seguro que te funciona tu consulta agregas las variables y probas de nuevo.

Prueba y error, el método infalible compañero, y la mejor manera de aprender.

Estas son mis sugerencias.

Espero te sirvan.
Saludos.

hasta este punto me funciona pero necesito los datos de la tabla OITM el campo “ItemCode” y “ItemName” no se como agregarla ya probe agregando otro CE_PROJECTION y nada
Uni el Join1 con Join2 y nada me quede sin ideas no se que mas hacerle.

 /********* Begin Procedure Script ************/ 
 BEGIN 
 
var_oin =   select 	 
						 "DocEntry"
						 , "DocNum"
						 , month("DocDate") as "Mes"
						 , year("DocDate") as "Ano"
						 , "CardName"
						 , "LicTradNum"
						 , "DocTotal"
						 , "GrosProfit" 
				from	 "DISCORDOBAHANA".oinv
				where	 "CANCELED" = 'N';
				
				
	 /********* Begin Procedure Script ************/ 
	
	var_inv = select    "DocEntry",
						"ItemCode"  
	   		from	 "DISCORDOBAHANA".INV1;
				
   /********* Begin Procedure Script ************/ 
 
  var_oit = select "ItemCode",
  					"ItemName",
  					"ItmsGrpCod"
	from	 "DISCORDOBAHANA".OITM;
	
	 /********* Begin Procedure Script ************/    		
     
var_ori =   select 	 
						 "DocEntry"
						 , "DocNum"
						 , month("DocDate") as "Mes"
						 , year("DocDate") as "Ano"
						 , "CardName"
						 , "LicTradNum"
						 , "DocTotal"
						 , "GrosProfit" 
						 
				from	 "DISCORDOBAHANA".ORIN
				where	 "CANCELED" = 'N';
				
 /********* Begin Procedure Script ************/ 				
	
	var_rin = select "DocEntry",
					 "ItemCode"
	from  "DISCORDOBAHANA".RIN1;
	
	
 /********* Begin Procedure Script ************/ 
	
 										
 	 join1 = CE_JOIN(:var_oin, :var_inv,["DocEntry"],
    									["DocEntry",
    									"DocNum",
    									"Mes",
    									"Ano",
    									"CardName",
    									"LicTradNum",
    									"DocTotal",
    									"GrosProfit"]);
 /********* Begin Procedure Script ***********************/   									
    									
     join2 = CE_JOIN(:var_inv,:var_oit,["ItemCode"],
     									["ItemCode",
     									"DocEntry",
     									"ItemName",
     									"ItmsGrpCod"]);
     
     
     
     																		
 /********* Begin Procedure Script ********************/ 
 	join3 = CE_JOIN(:var_ori, :var_rin,["DocEntry"],
    									["DocEntry",
    									"DocNum",
    									"Mes",
    									"Ano",
    									"CardName",
    									"LicTradNum",
    									"DocTotal",
    									"GrosProfit"]);
  /********* Begin Procedure Script **********************/   									
    	
   join4 = CE_JOIN(:var_rin,:var_oit,["ItemCode"],
     									["ItemCode",
     									"DocEntry",
     									"ItemName",
     									"ItmsGrpCod"]);																	

union1 = CE_UNION_ALL(:join1, :join3);
 
  
 	 var_out = CE_PROJECTION(:union1,["DocEntry",
    									"DocNum",
    									"Mes",
    									"Ano",
    									"CardName",
    									"LicTradNum",
    									"DocTotal",
    									"GrosProfit"]);

Estimado, veo tus consultas muy complejas, y veo las del link de abajo bastante mas sencillas, como te comento es poco lo que conozco de SQL HANA, pero quiza si tratas de probar con tus consultas haciendolos de una manera mas sencilla quiza sea mas facil que encuentres el error.

Abajo link

h_tp://teachmehana.com/sap-hana-sql-join-union-union-all/

Es una sugerencia.
Saludos.

1 me gusta

muchas gracias saufondez