[Date Prev][Date Next][Thread Prev][Thread Next]
[Author Index] [Date Index] [Thread Index]
[SQR-USERS Info] [SQRUG Home Page]

[no subject]



You can accomplish the same function of a FOR loop using a WHILE loop.  For
the situation you describe, to follow your pseudocode, you should do the
following.

#Incr = 1
#LocType1 = 10
#LocType2 = 20
#LocType3 = 35

WHILE #Incr <= 3
          Evaluate #Incr
                    When = 1
                              Let $LocTypeCondition = 'LOCTYPE = #LocType1'
                              Break
                    When = 2
                              Let $LocTypeCondition = 'LOCTYPE = #LocType2'
                              Break
                    When = 3
                              Let $LocTypeCondition = 'LOCTYPE = #LocType 3'
                              Break
          End-Evaluate

BEGIN-SELECT
FIELD_A
FIELD_B
FIELD_C
FROM ADDR_TABLE
WHERE [$LocTypeCondition]
END-SELECT

BEGIN-SQL
INSERT INTO PS_VENDOR_ADDR (A,B,C) VALUES (&FIELD_A, &FIELD_B, &FIELD_C)
END-SQL

          Let #Incr = #Incr + 1
END-WHILE

However, I would think the same could be accomplished using an INSERT
INTO...SELECT Syntax such as

BEGIN-SQL
INSERT INTO PS_VENDOR_ADDR (A,B,C)
     SELECT A,B,C
     FROM ADDR_TABLE
     WHERE LOCTYPE IN (10,20,35)
END-SQL

Unless there is some type of key mismatch...

Have Fun...

----- Original Message -----
From: Vikram Muratee <vmuratee@ATT.NET>
To: Multiple recipients of list SQR-USERS <SQR-USERS@list.iex.net>
Sent: Tuesday, April 13, 1999 9:45 PM


> hello all,
>
> I will greatly appreciate some views on my problem.
>
> I am on Oracle 7.3 and SQR 4.3 (and PS 7.5). I am trying
> to get the equivalen of a "FOR " Loop in SQR. (Which I
> understand is not available in SQR)
>
> I am attempting something like the pseudo code below.
> The objective is that I am picking up three rows for one
> VENDOR from a single source table and inserting three
> rows into one target table (PS_VENDOR_ADDR).
>
> I would greatly appreciate some direction on how to
> emulate the
> below pseudo code  in SQR :
>
> #INCR=0;
> #LOCTYPE1 =10;
> #LOCTYPE3 =20;
> #LOCTYPE2 = 35;
>
> FOR #INCR 1 TO 3 (EVALUATE #INCR
> WHEN =1
> select $a,$b,$c from ADDR_TABLE WHERE LOCTYPE =#LOCTYPE1;
> WHEN =2
> select $a,$b,$c from ADDR_TABLE WHERE LOCTYPE=#LOCTYPE2;
> WHEN =3
> select $a,$b,$c from ADDR_TABLE WHERE LOCTYPE=#LOCTYPE3;
> WHEN OTHER
> EXIT;
> INSERT $a,$b,$c INTO target_table !(as address
> seqno#INCR)
> #INCR+1  )
> !!The earlier you can help the better our whole team is
> doing 12-14 hrs a day to catch deadlines !!
>
> Thanks in advance,
>
> vikram