[Date Prev][Date Next][Thread Prev][Thread Next]
[Author Index]
[Date Index]
[Thread Index]
[SQR-USERS Info]
[SQRUG Home Page]
Re: [sqr-users] Re: Passing a Variable Value as an ExpressionStringto DECODE(), is it possible?
Making another begin-select procedure works, but I think something like the
following would be simpler and would not require as many calls to the database.
BEGIN-SELECT ON-ERROR =PROCESS_ERROR
POSITION (+1) ! ADVANCE 1 LINE FROM CURRENT POSITION
PG.PKG_NAME (,1)
bl.abbreviation
WHILE #PRINT_TRANSLATION_DETAIL_COUNTER < #_LANG_COUNT
MOVE '' TO $ABB !RESET $ABB
LET $ABB =
UPPER(LANG_COL_ARRAY.ABBREVIATION(#PRINT_TRANSLATION_DETAIL_COUNTER))
SHOW '>' $abb '<' #PRINT_TRANSLATION_DETAIL_COUNTER
LET $ABB = LTRIM(RTRIM($ABB,''),'')
IF &bl.abbreviation = $ABB
PRINT 'Y' (, +5)
ELSE
PRINT 'N' (, +5)
END-IF
ADD 1 TO #PRINT_TRANSLATION_DETAIL_COUNTER
END-WHILE
MOVE 0 TO #PRINT_TRANSLATION_DETAIL_COUNTER
FROM PM_RESORT_TRANSLATION RT, PM_TRANS_LANGUAGE TL,
PM_TRANS_BWI_LANGUAGE BL, PM_RESORT_PKG_GENERIC PG
WHERE TL.PM_TRANS_BWI_LANGUAGE_ID = BL.PM_TRANS_BWI_LANGUAGE_SEQNO
AND RT.PM_TRANS_LANGUAGE_ID = TL.PM_TRANS_LANGUAGE_SEQNO
AND RT.CONTENT_IDENTIFIER = PG.PKG_GENERIC_SEQNO
AND RT.RESORT = #RESORT
GROUP BY PG.PKG_NAME!, RT.RESORT
END-SELECT
At 04:21 PM 9/11/2006, you wrote:
>a MILLION thanks Steven!
>
>Well, lesson learned.
>>The Begin-Select loop forms a SQL statement once, and sends it to your
>>database server once.
>
>That was my logical error.
>
>I took your advice and encapsulated the MAX(DECODE) section into it's
>own begin-select procedure block.
>Then I simply called it from within my original begin-select
>procedure...so that it ran for each record returned therein, making
>sure to pass some key params, and viola!...same effect reached!!!
>
>in retrospect, that seems like such a simple solution, I guess I was
>being stubborn and just banging my head against the wall trying to get
>it to work the way I wanted. In reality, I was just making the
>problem too compicated
>
>thanks again, to you and everyone else who provided input!!!
>
>
>
>On 9/11/06, Alexander, Steven <Steven.Alexander@sanjoseca.gov> wrote:
>>The Begin-Select loop forms a SQL statement once, and sends it to your
>>database server once. The loop is for each row that the statement returns.
>>Perhaps you can put the Begin-Select loop inside the
>>#PRINT_TRANSLATION_DETAIL_COUNTER while-loop.
>>
>>-----Original Message-----
>>From: Saffiulla Mohamed [mailto:mohigro@gmail.com]
>>Sent: Monday, September 11, 2006 10:15 AM
>>To: This list is for discussion about the SQR database reporting
>>languagefrom Hyperion Solutions.
>>Subject: Re: [sqr-users] Re: Passing a Variable Value as an Expression
>>Stringto DECODE(), is it possible?
>>
>>Thanks for the input Dave,
>>
>>I've included the procedure in question below. It includes debugging
>>show statements. I have also included the resulting show output.
>>
>>The variable substitution is occurring within a loop, however, it's
>>not based on a &column_var from the same SQL statement. Rather, I'm
>>attempting to execute a loop that replaces a variable in the
>>MAX(DECODE) statement. That variable is being pulled from an array.
>>I guess my issue may have more to do with when SQR compiles the sql
>>statements, and maybe what I'm trying isn't possible with this tool.
>>
>>Here's whole procedure:
>>
>>!---------------------------------------------------------------------------
>>-----
>>!PROCEDURE: PRINT_TRANSLATION_DETAIL
>>!---------------------------------------------------------------------------
>>-----
>>BEGIN-PROCEDURE PRINT_TRANSLATION_DETAIL (#RESORT)
>>
>> LET #PRINT_TRANSLATION_DETAIL_COUNTER = 0
>>
>> SHOW
>>'---------------------------------------------------------------------'
>> SHOW 'BEGIN SELECT FOR ' #RESORT
>>
>>BEGIN-SELECT ON-ERROR =PROCESS_ERROR
>>
>> POSITION (+1) ! ADVANCE 1 LINE FROM CURRENT POSITION
>>PG.PKG_NAME
>>(,1)
>>
>> WHILE #PRINT_TRANSLATION_DETAIL_COUNTER < #_LANG_COUNT
>> MOVE '' TO $ABB !RESET $ABB
>>
>> LET $ABB =
>>UPPER(LANG_COL_ARRAY.ABBREVIATION(#PRINT_TRANSLATION_DETAIL_COUNTER))
>>
>> SHOW '>' $abb '<' #PRINT_TRANSLATION_DETAIL_COUNTER
>>
>>max (decode(bl.abbreviation,
>>LTRIM(RTRIM($ABB,''),''),'Y',bl.abbreviation,'N')) LANGUAGE (,+5)
>>
>> ADD 1 TO #PRINT_TRANSLATION_DETAIL_COUNTER
>>
>> END-WHILE
>>
>> MOVE 0 TO #PRINT_TRANSLATION_DETAIL_COUNTER
>>
>>FROM PM_RESORT_TRANSLATION RT, PM_TRANS_LANGUAGE TL,
>>PM_TRANS_BWI_LANGUAGE BL, PM_RESORT_PKG_GENERIC PG
>>
>>WHERE TL.PM_TRANS_BWI_LANGUAGE_ID = BL.PM_TRANS_BWI_LANGUAGE_SEQNO
>>AND RT.PM_TRANS_LANGUAGE_ID = TL.PM_TRANS_LANGUAGE_SEQNO
>>AND RT.CONTENT_IDENTIFIER = PG.PKG_GENERIC_SEQNO
>>AND RT.RESORT = #RESORT
>>GROUP BY PG.PKG_NAME!, RT.RESORT
>>
>>END-SELECT
>>
>> SHOW
>>'---------------------------------------------------------------------'
>> SHOW 'END SELECT FOR ' #RESORT
>>
>>END-PROCEDURE
>>!---------------------------------------------------------------------------
>>-----------------------------------------
>>
>>When I run the above I get the following debugging output:
>>
>>BEGIN PROCESSING AT 09:58:00
>>---------------------------
>>BEGIN SELECT FOR 10.000000
>> >FR<0.000000
>> >DE<1.000000
>> >IT<2.000000
>> >ES<3.000000
>> >ZH<4.000000
>> >JA<5.000000
>> >KO<6.000000
>> >B7<7.000000
>> >NL<8.000000
>> >FI<9.000000
>> >PT<10.000000
>> >SV<11.000000
>>END SELECT FOR 10.000000
>>---------------------------
>>
>>According the to output, I am getting the values intended for the variable.
>>
>>I thought about your statement regarding the error in using the loop
>>within the select. So I decided to try a single MAX(DECODE)
>>statement, within which I passed a variable only once. So, instead of
>>having a loop, I simply said:
>>Let $ABB = 'FR'
>>and then used $ABB in a single MAX(DECODE) statement. My thought was,
>>that if my error was attempting the loop, and since I could see that
>>my variables were returning accurate values, that should work.
>>However, when I ran that modified test...the pattern matching still
>>failed!...The only way it worked, was when i replaced the variable all
>>together and just used the literal 'FR' in the statement. That's a
>>major reason why I'm wondering about possible conversion issues when
>>the SQL statement is actually being created.
>>
>>At anyrate, I will keep trying some things, and definitely report back
>>with whatever solution eventually works...
>>
>>keep bringing the suggestions though, I really appreciate everyone's
>>time and consideration!! :)
>>
>>
>>On 9/9/06, David Donnelly <Dave@isisbio.com> wrote:
>> > Saffiula,
>> >
>> > First, do put some debugging show statements in to be sure you're getting
>> > what you expect in your variable.
>> >
>> > You shouldn't need to use dynamic SQR (square brackets); simple
>> > substitution should work.
>> >
>> > Remember though, that this substitution is done ONCE, before the select
>> > starts. Sometimes newbies try to do this:
>> >
>> > begin-select
>> >
>> > abbreviation &code
>> > max (decode(bl.abbreviation, TRIM(&code),'Y',bl.abbreviation,'N')) (,+5)
>> >
>> > from bl
>> >
>> > etc
>> >
>> > and this will not work.
>> >
>> > Maybe you should show us more of the select statement, and the loop if it
>> > is outside the select.
>> >
>> > Also, as usual, if you have any local procedures, make sure you have
>> > indicated $_global-variables correctly.
>> >
>> > Dave
>> >
>> >
>> > _______________________________________________
>> > sqr-users mailing list
>> > sqr-users@sqrug.org
>> > http://www.sqrug.org/mailman/listinfo/sqr-users
>> >
>>
>>_______________________________________________
>>sqr-users mailing list
>>sqr-users@sqrug.org
>>http://www.sqrug.org/mailman/listinfo/sqr-users
>>
>>_______________________________________________
>>sqr-users mailing list
>>sqr-users@sqrug.org
>>http://www.sqrug.org/mailman/listinfo/sqr-users
>
>_______________________________________________
>sqr-users mailing list
>sqr-users@sqrug.org
>http://www.sqrug.org/mailman/listinfo/sqr-users
Daniel Vandenberg
Administrative Computing
University of Wisconsin Oshkosh
Email : vandberg@uwosh.edu
_______________________________________________
sqr-users mailing list
sqr-users@sqrug.org
http://www.sqrug.org/mailman/listinfo/sqr-users