Hola, necesito ayuda con una sentencia SQL Hana

Hola q tal, espero me puedan ayudar. Tengo una consulta hecha en MSSQL y necesito traducirla a Hana y me da error en la linea abajo copiada cerca del simbolo “@”
@FAMILIA AS T5 ON SUBSTRING (T3.“ItemCode”, 1, 2) = T5.“Code”
Seguramente es un error en la sintaxys, si alguien me puede guiar por favor?
Saludos.

@FAMILIA debe ser una vista/Vew imagino entonces quita el @ y usa “NOMBRE_DE__TU_BASE”.“FAMILIA” o si puedes poner mas detalles de tu código

1 me gusta

Gracias Ikashimi!!! el codigo es medio largo, pero me imagino que el @familia hace referencia a una variable temporal que luego une con otro elemento de otra tabla, de todas maneras te paso el codigo completo:

SELECT  T0."DocDate" AS Fecha, 
	T1."WhsCode" AS Almacen, 
	CASE WHEN (T1."WhsName" LIKE '%licitacion%') THEN 'SI' ELSE 'NO' END AS Lic, 
	T4."ItmsGrpNam" AS GrupArt, 
	T2."CardName" AS Cliente, 	
	T1."Quantity" AS Cantidad, 
                T6."SlpName" AS VENDEDOR, 
	T0."Comments", 
CASE WHEN t2."QryGroup10" = 'Y' THEN 'ESTATAL' ELSE 'PRIVADA' END AS ESTATAL, 
	T1."LineTotal" / .87 AS VENTAS, 
	T1."LineTotal" / .87 - T1."LineTotal" AS IVA, 
	T1."LineTotal" AS NETO
FROM     INTERCOM_PRD.OINV AS T0 INNER JOIN
                INTERCOM_PRD.INV1 AS T1 ON T0."DocEntry" = T1."DocEntry" INNER JOIN
                INTERCOM_PRD.OCRD AS T2 ON T0."CardCode" = T2."CardCode" INNER JOIN
                INTERCOM_PRD.OITM AS T3 ON T1."ItemCode" = T3."ItemCode" INNER JOIN
                INTERCOM_PRD.OITB AS T4 ON T3."ItmsGrpCod" = T4."ItmsGrpCod" INNER JOIN
                @FAMILIA AS T5 ON SUBSTRING (T3."ItemCode", 1, 2) = T5."Code" INNER JOIN
                INTERCOM_PRD.OSLP AS T6 ON T0."SlpCode" = T6."SlpCode"
WHERE   (T0."U_ESTADOFC"='V') AND (T0."CardCode" NOT IN ('C-LP-1038', 'C-CB-1392', 'C-SC-0386', 'C-OT-0192', 'C-CB-1412', 'C-SC-1274')) AND 
                 (T0."DocDate" >= '20090101')

Prueba Con Esto:

SELECT T0.“DocDate” AS "Fecha",
T1.“WhsCode” AS "Almacen",
CASE WHEN (T1.“WhsName”   Like '%%licitacion%%') THEN ‘SI’ ELSE ‘NO’ END AS "Lic",
T4.“ItmsGrpNam” AS "GrupArt",
T2.“CardName” AS "Cliente",
T1.“Quantity” AS "Cantidad",
T6.“SlpName” AS "VENDEDOR",
T0.“Comments”,
CASE WHEN t2.“QryGroup10” = ‘Y’ THEN ‘ESTATAL’ ELSE ‘PRIVADA’ END AS "ESTATAL",
T1.“LineTotal” / .87 AS "VENTAS",
T1.“LineTotal” / .87 - T1.“LineTotal” AS "IVA",
T1.“LineTotal” AS "NETO"
FROM "INTERCOM_PRD".OINV AS T0 INNER JOIN
"INTERCOM_PRD"."INV1" AS T1 ON T0.“DocEntry” = T1.“DocEntry” INNER JOIN
"INTERCOM_PRD"."OCRD" AS T2 ON T0.“CardCode” = T2.“CardCode” INNER JOIN
"INTERCOM_PRD"."OITM" AS T3 ON T1.“ItemCode” = T3.“ItemCode” INNER JOIN
"INTERCOM_PRD"."OITB" AS T4 ON T3.“ItmsGrpCod” = T4.“ItmsGrpCod” INNER JOIN
"INTERCOM_PRD"."FAMILIA" AS T5 ON SUBSTRING (T3.“ItemCode”, 1, 2) = T5.“Code” INNER JOIN
"INTERCOM_PRD"."OSLP" AS T6 ON T0.“SlpCode” = T6.“SlpCode”
WHERE T0.“U_ESTADOFC”=‘V’ AND T0.“CardCode” NOT IN (‘C-LP-1038’, ‘C-CB-1392’, ‘C-SC-0386’, ‘C-OT-0192’, ‘C-CB-1412’, ‘C-SC-1274’) AND
T0.“DocDate” >= ‘20090101’
1 me gusta

Ya hice el intento, si pongo ese codigo, me busca una tabla que tenga el nombre de FAMILIA, y esa tabla no existe en la base de datos. Debe ser alguna sintaxis para llamar una variable temporal durante la ejecucion de la consulta.

tienes acceso a Hana Studio? puedes buscar todas las coincidencias de familia

Es que no hay coincidencias, me imagino que por eso, en la consulta que esta hecha en MSSQL la nombran como @FAMILIA porque es alguna variable temporal que usan para relacionar tablas solo durante la ejecucion de este codigo y nada mas. Por eso pienso que es la sintaxis para el uso de variables o tablas temporales en Hana sql.

Ok enMSSQL puedes checar que hace familia, para tratar de emularlo en hana

1 me gusta

Entiendo, hare la revision del resultado en MSSQL. Gracias por la ayuda! y comento los resultados.

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