I want to achieve the following:
Current State of table (my_table)
id totalX totalY totalZ
--------- -------------- -------------- --------------
9 34 334 0
10 6 56 0
11 21 251 0
12 3 93 0
Query result of (my_table2)
select id,count(*) as total FROM my_table2 WHERE column_2 = 1 GROUP BY id
id total
--------- --------------
9 500
10 600
11 700
12 800
Expected State of table (my_table)
id totalX totalY totalZ
--------- -------------- -------------- --------------
9 34 334 500
10 6 56 600
11 21 251 700
12 3 93 800
Can this be done in ONE update query ? I am looking for Sybase ASE 12.5 on a RHEL 5.0
EDIT: I coudn't find the solution for Sybase, but the current answer to the question works on MS SQL Server..
update
my_table
set
my_table.totalZ = t.total
FROM
my_table mt
INNER JOIN
(select id,count(*) as total
FROM my_table2
WHERE column_2 = 1 GROUP BY id) t
on mt.id = t.id
UPDATE In MS SQL Server this is what you would do. The OP noted this doesn't work in Sybase.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With