Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 10548

Re: field or table alias is not allowed as an input of table functions

$
0
0

Hi nphana,

Instead of using single function, you can create another function and Invoke the function and can use IN parameter.
Here is the example:

 

CREATE FUNCTION RAJ.MY_FUNC (I_VKORG NVARCHAR (4), I_VTWEG NVARCHAR (2), 

             I_SPART NVARCHAR (2),  I_PARVW NVARCHAR (2), I_PARZA NVARCHAR (3) )
RETURNS TABLE (KUNNR NVARCHAR (10))
LANGUAGE SQLSCRIPT AS
BEGIN

  RETURN
  SELECT "ECC2HANA"."KNVP".KUNNR FROM  "ECC2HANA"."KNVP"
   WHERE "ECC2HANA"."KNVP".VKORG = :I_VKORG
     AND "ECC2HANA"."KNVP".VTWEG = :I_VTWEG
     AND "ECC2HANA"."KNVP".SPART = :I_SPART
     AND "ECC2HANA"."KNVP".PARVW = :I_PARVW
     AND "ECC2HANA"."KNVP".PARZA = :I_PARZA
;
END
;

SELECT * FROM RAJ.MY_FUNC('7500','10','00','AG','000');

Result is shown below:

   my_func.jpg

Now I created another function so that I can use the result set of above function which is used as criteria for some other table.

I not used any input parameter for second function but can be used if required.

 

 

CREATE FUNCTION RAJ.FUNC_MY_FUNC ( )

RETURNS TABLE (NAME1 NVARCHAR (35))

LANGUAGE SQLSCRIPT AS

BEGIN

RETURN 

SELECT "ECC2HANA"."KNA1".NAME1 FROM "ECC2HANA"."KNA1"

  WHERE "ECC2HANA"."KNA1".KUNNR IN (SELECT * FROM RAJ.MY_FUNC('7500','10','00','AG','000'));

 

END;

Result is shown below:

 

    FUNC_MY_FUNC.jpg

Similarly you can do for your requirement.

 

Regards
Raj


Viewing all articles
Browse latest Browse all 10548

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>