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