Focal Point Banner
Community Center Education Summit Technical Support User Groups
Let's Get Social!

Facebook Twitter LinkedIn YouTube
Focal Point    Focal Point Forums  Hop To Forum Categories  WebFOCUS/FOCUS Forum on Focal Point     [SOLVED] How to run a SQL query with @var?
Go
New
Search
Notify
Tools
Reply
  
[SOLVED] How to run a SQL query with @var?
 Login/Join
 
Guru
posted
Hi,
Can anyone help me how to run a SQL query with @var?


-SET &ECHO=ALL;


-****************************************
-* SET SQLMSS ENGINE TO RUN SQL QUERIES
-* THE RESULTS IN BE ON HOLD: HDSR
-****************************************

ENGINE SQLMSS SET DEFAULT_CONNECTION VESIR21815
SQL SQLMSS PREPARE HDSR FOR
-*****************
-* QUERY DSR
-*****************


DECLARE @LAST_MONTH VARCHAR(6)
SET @LAST_MONTH = (SELECT TOP 1 LEFT(CONVERT(VARCHAR(8),RENAVAM.SRSD28_RENAVAM_Y,112),6) AS 'YEARMONTH'
FROM MSRSD28_RENAVAM RENAVAM WHERE RENAVAM.SRSD28_RENAVAM_Y >= '2015-04-01' AND RENAVAM.SRSD28_RENAVAM_Y <= '2015-05-05'
ORDER BY LEFT(CONVERT(VARCHAR(8),RENAVAM.SRSD28_RENAVAM_Y,112),6))

END


TABLE FILE HDSR
PRINT *
END

Error:
0 ERROR AT OR NEAR LINE 26 IN PROCEDURE ADHOCRQ FOCEXEC *
(FOC205) THE DESCRIPTION CANNOT BE FOUND FOR FILE NAMED: HDSR
BYPASSING TO END OF COMMAND


I am able to run it as:
ENGINE SQLMSS SET DEFAULT_CONNECTION VESIR21815
SQL SQLMSS PREPARE HDSR FOR
-*****************
-* QUERY DSR
-*****************


SELECT TOP 1 LEFT(CONVERT(VARCHAR(8),RENAVAM.SRSD28_RENAVAM_Y,112),6) AS 'YEARMONTH'
FROM MSRSD28_RENAVAM RENAVAM WHERE RENAVAM.SRSD28_RENAVAM_Y >= '2015-04-01' AND RENAVAM.SRSD28_RENAVAM_Y <= '2015-05-05'
ORDER BY LEFT(CONVERT(VARCHAR(8),RENAVAM.SRSD28_RENAVAM_Y,112),6)

END

This message has been edited. Last edited by: Ricardo Augusto,


WebFOCUS 8.1.05 / APP Studio
 
Posts: 272 | Location: Brazil | Registered: October 31, 2006Reply With QuoteReport This Post
Member
posted Hide Post
Not an expert, but could you do something like this instead??

 
-SET &ECHO=ALL;

-SET &LAST_MONTH = 'SELECT TOP 1 LEFT(CONVERT(VARCHAR(8),RENAVAM.SRSD28_RENAVAM_Y,112),6) AS "YEARMONTH" FROM MSRSD28_RENAVAM RENAVAM WHERE RENAVAM.SRSD28_RENAVAM_Y >= ''2015-04-01'' AND RENAVAM.SRSD28_RENAVAM_Y <= ''2015-05-05'' ORDER BY LEFT(CONVERT(VARCHAR(8),RENAVAM.SRSD28_RENAVAM_Y,112),6)';

-****************************************
-* SET SQLMSS ENGINE TO RUN SQL QUERIES
-* THE RESULTS IN BE ON HOLD: HDSR
-****************************************

ENGINE SQLMSS SET DEFAULT_CONNECTION VESIR21815
SQL SQLMSS PREPARE HDSR FOR
-*****************
-* QUERY DSR
-*****************


&LAST_MONTH.EVAL
;
END


TABLE FILE HDSR
PRINT *
END


Not sure about the double quotes around the YEARMONTH column name. We use Teradata, not MSSQL, but it works there.

Patrick


WebFocus 8.1.05, UNIX, HTML, Excel, PDF, CSV, Teradata DB
 
Posts: 3 | Registered: June 18, 2015Reply With QuoteReport This Post
Guru
posted Hide Post
It worked Patrick. Thanks!


I also got it creating a Stored Procedure then accessing it from WebFOCUS.

See ya.


WebFOCUS 8.1.05 / APP Studio
 
Posts: 272 | Location: Brazil | Registered: October 31, 2006Reply With QuoteReport This Post
  Powered by Social Strata  
 

Focal Point    Focal Point Forums  Hop To Forum Categories  WebFOCUS/FOCUS Forum on Focal Point     [SOLVED] How to run a SQL query with @var?

Copyright © 1996-2018 Information Builders, leaders in enterprise business intelligence.