From the table below, update the var_1 and var_2:
-- Group by id,nr
-- If prod for (type = 'sold' or page = 'bag') = prod for (type = 'gift')
--- update var_1 and var_2 from the max(pg_nr) of the matching row
My_Table
+---+---+-----+----+----+----+----+-----+------+
| id| nr|pg_nr|type|list|page|prod|var_1| var_2|
+---+---+-----+----+----+----+----+-----+------+
| v1| 1| 1|load| 250| bag|SE92| ball| blue|
| v1| 1| 2|load| 250| bag|SFW2| null| null|
| v1| 1| 3|view| 250| prd|PUF2| null| null|
| v1| 1| 4|gift| 203| prd|SE92| ball|orange|
| v1| 1| 4|gift| 203| prd|MMA3| ball| red|
| v1| 1| 5|view| 250| bag|MNY3| null| null|
| v1| 1| 6|sold| 250| prd|SE92| null| null|
| v1| 1| 7|gift| 203| prd|MM03| ball|orange|
| v1| 1| 7|gift| 203| prd|MMX3| ball| red|
| v1| 1| 8|view| 250| bag|MNY3| null| null|
| v2| 1| 1|load| 250| bag|SE92| null| null|
+---+---+-----+----+----+----+----+-----+------+
Output
+---+---+-----+----+----+----+----+-----+------+
| id| nr|pg_nr|type|list|page|prod|var_1| var_2|
+---+---+-----+----+----+----+----+-----+------+
| v1| 1| 1|load| 250| bag|SE92| ball| blue|
| v1| 1| 2|load| 250| bag|SFW2| null| null|
| v1| 1| 3|view| 250| prd|PUF2| null| null|
| v1| 1| 4|gift| 203| prd|SE92| ball|orange|
| v1| 1| 4|gift| 203| prd|MMA3| ball| red|
| v1| 1| 5|view| 250| bag|MNY3| null| null|
| v1| 1| 6|sold| 250| prd|SE92| ball|orange| <--
| v1| 1| 7|gift| 203| prd|MM03| ball|orange|
| v1| 1| 7|gift| 203| prd|MMX3| ball| red|
| v1| 1| 8|view| 250| bag|MNY3| null| null|
| v2| 1| 1|load| 250| bag|SE92| null| null|
+---+---+-----+----+----+----+----+-----+------+