I’m not sure how to correctly articulate the title, so please correct it if giving the wrong idea.
Here’s an example table named table1:
id name1 number1 name2 number2
... ... ... ... ...
341 A 12 T 10
342 C 17 A 21
343 H 15 G 3
344 C 10 A 11
345 T 15 G 16
... ... ... ... ...
Here is what I’d like to select, for n=3:
id name1 number1 name2 number2 number3
... ... ... ... ... ...
341 A 12 T 10 ...
342 C 17 A 21 ...
344 C 10 A 11 11-10+21-17+12-10
351 D 9 A 5 5-9+11-10+21-17
360 A 18 C 10 18-10+5-9+11-10
503 A 21 K 16 9
... ... ... ... .... based on last 3 where name1 or name2=A
As you can see number_i belongs to name_i, i=1,2
Conditions:
– name1 or name2 must be A
– number3 depends on last 3 number_i entries (current included) where name_i=A, i=1,2
Following should get you started.
Note that there is much room for improvement but because of my lacking knowledge regarding MySQL, I have taken the safe route that should work on every DBMS.
SQL Statement