Or do you want duplicates, as in:

UPDATE "TABLE" t1
   set "POS" = 1 + (SELECT COUNT(DISTINCT "MONTH")
                  FROM "TABLE" t2
                  WHERE t2."YEAR" = 2010 and t2."MONTH" < t1."MONTH")
WHERE t1."YEAR" = 2010

(using double quotes since your example contained lots of reserved words),
Set

2017-06-15 15:41 GMT+02:00 Svein Erling Tysvær <[email protected]>:

> It is possible to do this with a complex, but straight UPDATE statement.
> However, my hunch is that the below is simpler:
>
> execute block as
>   declare variable i integer;
>   declare variable PK <whatever>;
>   i = 1;
>   for select <PrimaryKey>
>       from table
>       where year = 2010
>       order by month, <PrimaryKey>
>       into :PK do
>   begin
>       update table
>          set "POS" = i
>       where <PrimaryKey> = :PK;
>       i = i + 1;
>   end
> end
>
> HTH,
> Set
>
> 2017-06-15 15:33 GMT+02:00 'Check_Mail' [email protected]
> [firebird-support] <[email protected]>:
>
>> Hello,
>>
>> How can I increment consisting records like this:
>>
>> Year  month   order         pos
>> 2010  2                 1        null
>> 2010  2                 1        null
>> 2010  2                 1        null
>> 2010  3                 2       null
>>
>> Pos should be auto increment for all 2010 2 records, null to 1, the second
>> record null to 2 til 4
>>
>> Update table set pos = coalesce(pos,0)+1 where year = 2010 and month = 2
>> works not, all records have the pos=1 value
>>
>> Thank you
>>
>> Best regards
>>
>> Olaf
>>
>>
>> ------------------------------------
>> Posted by: "Check_Mail" <[email protected]>
>> ------------------------------------
>>
>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>
>> Visit http://www.firebirdsql.org and click the Documentation item
>> on the main (top) menu.  Try FAQ and other links from the left-side menu
>> there.
>>
>> Also search the knowledgebases at http://www.ibphoenix.com/resou
>> rces/documents/
>>
>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> ------------------------------------
>>
>> Yahoo Groups Links
>>
>>
>>
>>
>

Reply via email to