Mega Code Archive

 
Categories / MSSQL Tutorial / Insert Delete Update
 

Updating using two subqueries

5>  CREATE TABLE sales( 6>    stor_id        char(4)           NOT NULL, 7>    ord_num        varchar(20)       NOT NULL, 8>    ord_date       datetime          NOT NULL, 9>    qty            smallint          NOT NULL, 10>    payterms       varchar(12)       NOT NULL, 11>    title_id       varchar(80) 12> ) 13> GO 1> insert sales values('1', 'QA7442.3', '09/13/94', 75, 'ON Billing','1') 2> insert sales values('2', 'D4482',    '09/14/94', 10, 'Net 60',    '1') 3> insert sales values('3', 'N914008',  '09/14/94', 20, 'Net 30',    '2') 4> insert sales values('4', 'N914014',  '09/14/94', 25, 'Net 30',    '3') 5> insert sales values('5', '423LL922', '09/14/94', 15, 'ON Billing','3') 6> insert sales values('6', '423LL930', '09/14/94', 10, 'ON Billing','2') 7> GO (1 rows affected) (1 rows affected) (1 rows affected) (1 rows affected) (1 rows affected) (1 rows affected) 1> 2> 3> CREATE TABLE titleauthor( 4>    au_id          varchar(20), 5>    title_id       varchar(20), 6>    au_ord         tinyint               NULL, 7>    royaltyper     int                   NULL 8> ) 9> GO 1> 2> insert titleauthor values('1', '2', 1, 60) 3> insert titleauthor values('2', '3', 1, 100) 4> insert titleauthor values('3', '4', 1, 100) 5> insert titleauthor values('4', '5', 1, 100) 6> insert titleauthor values('5', '6', 1, 100) 7> insert titleauthor values('6', '7', 2, 40) 8> insert titleauthor values('7', '8', 1, 100) 9> insert titleauthor values('8', '9', 1, 100) 10> GO (1 rows affected) (1 rows affected) (1 rows affected) (1 rows affected) (1 rows affected) (1 rows affected) (1 rows affected) (1 rows affected) 1>      UPDATE   titleauthor 2>      SET      royaltyper = 1.1 * (SELECT   SUM(qty) 3>                            FROM      sales 4>                            WHERE     sales.title_id = titleauthor.title_id) 5>      WHERE    title_id IN 6>               (SELECT   title_id 7>               FROM      sales 8>               GROUP BY  title_id 9>               HAVING    sum(qty) >=30) 10> GO (2 rows affected) 1> 2> drop table sales; 3> drop table titleauthor; 4> GO 1>