Mega Code Archive

 
Categories / MSSQL Tutorial / Query
 

Summarizing Data Using the Searched CASE Expression

6> 7> CREATE TABLE stores( 8>    stor_id        char(4)           NOT NULL, 9>    stor_name      varchar(40)           NULL, 10>    stor_address   varchar(40)           NULL, 11>    city           varchar(20)           NULL, 12>    state          char(2)               NULL, 13>    zip            char(5)               NULL 14> ) 15> GO 1> insert stores values('1','B','567 Ave.','Tustin',   'CA','92789') 2> insert stores values('2','N','577 St.', 'Los Gatos','CA','96745') 3> insert stores values('3','T','679 St.', 'Portland', 'OR','89076') 4> insert stores values('4','F','89  St.', 'Fremont',  'CA','90019') 5> GO (1 rows affected) (1 rows affected) (1 rows affected) (1 rows affected) 1> 2> CREATE TABLE sales( 3>    stor_id        char(4)           NOT NULL, 4>    ord_num        varchar(20)       NOT NULL, 5>    ord_date       datetime          NOT NULL, 6>    qty            smallint          NOT NULL, 7>    payterms       varchar(12)       NOT NULL, 8>    title_id       varchar(80) 9> ) 10> 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>     SELECT DISTINCT st.stor_name, 3>     'Sales Rating' = 4>         CASE 5>           WHEN (SELECT SUM(sa.qty) FROM sales sa 6>                                    WHERE st.stor_id = sa.stor_id) < 10 7>               THEN 'Poor' 8>           WHEN (SELECT SUM(sa.qty) FROM sales sa 9>                                    WHERE st.stor_id = sa.stor_id) < 80 10>               THEN 'Average' 11>           WHEN (SELECT SUM(sa.qty) FROM sales sa 12>                                    WHERE st.stor_id = sa.stor_id) < 100 13>               THEN 'Good' 14>           ELSE 'Excellent' 15>         END, 16>     'Sales Total' = (SELECT SUM(sa.qty) FROM sales sa 17>                                         WHERE st.stor_id = sa.stor_id) 18>     FROM stores st, sales sa 19>     ORDER BY 'Sales Total' 20> GO stor_name                                Sales Rating Sales Total ---------------------------------------- ------------ ----------- N                                        Average               10 T                                        Average               20 F                                        Average               25 B                                        Average               75 (4 rows affected) 1> drop table stores; 2> drop table sales; 3> GO 1> 2>