Compare and calculate in Where clause : Where : Where Clause SQL / MySQL


SQL / MySQL » Where Clause » Where »

 

Compare and calculate in Where clause



/*
mysql> Drop table Sale;
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE TABLE Sale
    -> (
    ->    ID SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ->    Name VARCHAR(50) NOT NULL,
    ->    InStock SMALLINT UNSIGNED NOT NULL,
    ->    OnOrder SMALLINT UNSIGNED NOT NULL,
    ->    Reserved SMALLINT UNSIGNED NOT NULL,
    ->    Department ENUM('Classical', 'Popular') NOT NULL,
    ->    Category VARCHAR(20)
    -> );
Query OK, 0 rows affected (0.06 sec)

mysql> INSERT INTO Sale (Name,      InStock, OnOrder, Reserved, Department, Cate
gory)
    -> VALUES          ('Bloodshot', 11,      6,       1,        'Popular',  'Ro
ck'),
    ->                 ('Opera',     12,      5,       2,        'Classical','Op
era'),
    ->                 ('Jazz',      13,      4,       3,        'Popular',  'Ja
zz'),
    ->                 ('Music',     4,       3,       4,        'Classical','Da
nce'),
    ->                 ('Violin',    25,      2,       5,        'Classical', NU
LL),
    ->                 ('Toscana',   16,      1,       6,        'Classical', NU
LL),
    ->                 ('Blues',     7,       22,      7,        'Popular',   'B
lues'),
    ->                 ('Pure',      38,      5,       11,       'Popular',   NU
LL),
    ->                 ('Mud',       19,      11,      12,       'Popular',  'Co
untry'),
    ->                 ('Essence',   5,       23,      12,       'Popular', 'New
 Age'),
    ->                 ('Embrace',   21,      12,      14,       'Popular', 'New
 Age'),
    ->                 ('Satie',     42,      17,      15,       'Classical', NU
LL),
    ->                 ('Lake',      23,      47,      28,       'Classical', 'D
ance'),
    ->                 ('Favorites', 34,      15,      12,       'Classical', 'G
eneral'),
    ->                 ('Boheme',    25,      12,       5,       'Classical', 'O
pera'),
    ->                 ('Cantatas',  26,      13,      8,        'Classical', 'G
eneral'),
    ->                 ('Road',      27,      13,      17,       'Popular', 'Cou
ntry'),
    ->                 ('Paris',     18,      25,      10,       'Popular', 'Jaz
z'),
    ->                 ('Woman',     29,      4,        7,       'Popular', 'Blu
es'),
    ->                 ('Bach',      21,      13,      16,       'Classical', 'G
eneral'),
    ->                 ('Opera',     12,      32,      12,       'Classical', 'O
pera'),
    ->                 ('Soul',      13,      30,      14,       'Popular', NULL
),
    ->                 ('Stages',    44,      0,       8,        'Popular', 'Blu
es'),
    ->                 ('Bach',      15,      1,       8,        'Classical', 'G
eneral');
Query OK, 24 rows affected (0.01 sec)
Records: 24  Duplicates: 0  Warnings: 0

mysql> select * from Sale;
+----+-----------+---------+---------+----------+------------+----------+
| ID | Name      | InStock | OnOrder | Reserved | Department | Category |
+----+-----------+---------+---------+----------+------------+----------+
|  1 | Bloodshot |      11 |       6 |        1 | Popular    | Rock     |
|  2 | Opera     |      12 |       5 |        2 | Classical  | Opera    |
|  3 | Jazz      |      13 |       4 |        3 | Popular    | Jazz     |
|  4 | Music     |       4 |       3 |        4 | Classical  | Dance    |
|  5 | Violin    |      25 |       2 |        5 | Classical  | NULL     |
|  6 | Toscana   |      16 |       1 |        6 | Classical  | NULL     |
|  7 | Blues     |       7 |      22 |        7 | Popular    | Blues    |
|  8 | Pure      |      38 |       5 |       11 | Popular    | NULL     |
|  9 | Mud       |      19 |      11 |       12 | Popular    | Country  |
| 10 | Essence   |       5 |      23 |       12 | Popular    | New Age  |
| 11 | Embrace   |      21 |      12 |       14 | Popular    | New Age  |
| 12 | Satie     |      42 |      17 |       15 | Classical  | NULL     |
| 13 | Lake      |      23 |      47 |       28 | Classical  | Dance    |
| 14 | Favorites |      34 |      15 |       12 | Classical  | General  |
| 15 | Boheme    |      25 |      12 |        5 | Classical  | Opera    |
| 16 | Cantatas  |      26 |      13 |        8 | Classical  | General  |
| 17 | Road      |      27 |      13 |       17 | Popular    | Country  |
| 18 | Paris     |      18 |      25 |       10 | Popular    | Jazz     |
| 19 | Woman     |      29 |       4 |        7 | Popular    | Blues    |
| 20 | Bach      |      21 |      13 |       16 | Classical  | General  |
| 21 | Opera     |      12 |      32 |       12 | Classical  | Opera    |
| 22 | Soul      |      13 |      30 |       14 | Popular    | NULL     |
| 23 | Stages    |      44 |       0 |        8 | Popular    | Blues    |
| 24 | Bach      |      15 |       1 |        8 | Classical  | General  |
+----+-----------+---------+---------+----------+------------+----------+
24 rows in set (0.01 sec)

mysql> SELECT Name, InStock, OnOrder, Reserved
    -> FROM Sale
    -> WHERE (InStock+OnOrder-Reserved)<20
    -> ORDER BY Name;
+-----------+---------+---------+----------+
| Name      | InStock | OnOrder | Reserved |
+-----------+---------+---------+----------+
| Bach      |      15 |       1 |        8 |
| Bach      |      21 |      13 |       16 |
| Bloodshot |      11 |       6 |        1 |
| Embrace   |      21 |      12 |       14 |
| Essence   |       5 |      23 |       12 |
| Jazz      |      13 |       4 |        3 |
| Mud       |      19 |      11 |       12 |
| Music     |       4 |       3 |        4 |
| Opera     |      12 |       5 |        2 |
| Toscana   |      16 |       1 |        6 |
+-----------+---------+---------+----------+
10 rows in set (0.00 sec)


*/

Drop table Sale;


CREATE TABLE Sale
(
   ID SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
   Name VARCHAR(50NOT NULL,
   InStock SMALLINT UNSIGNED NOT NULL,
   OnOrder SMALLINT UNSIGNED NOT NULL,
   Reserved SMALLINT UNSIGNED NOT NULL,
   Department ENUM('Classical', 'Popular') NOT NULL,
   Category VARCHAR(20)
);


INSERT INTO Sale (Name,      InStock, OnOrder, Reserved, Department, Category)
VALUES          ('Bloodshot', 11,      6,       1,        'Popular',  'Rock'),
                ('Opera',     12,      5,       2,        'Classical','Opera'),
                ('Jazz',      13,      4,       3,        'Popular',  'Jazz'),
                ('Music',     4,       3,       4,        'Classical','Dance'),
                ('Violin',    25,      2,       5,        'Classical', NULL),
                ('Toscana',   16,      1,       6,        'Classical', NULL),
                ('Blues',     7,       22,      7,        'Popular',   'Blues'),
                ('Pure',      38,      5,       11,       'Popular',   NULL),
                ('Mud',       19,      11,      12,       'Popular',  'Country'),
                ('Essence',   5,       23,      12,       'Popular', 'New Age'),
                ('Embrace',   21,      12,      14,       'Popular', 'New Age'),
                ('Satie',     42,      17,      15,       'Classical', NULL),
                ('Lake',      23,      47,      28,       'Classical', 'Dance'),
                ('Favorites', 34,      15,      12,       'Classical', 'General'),
                ('Boheme',    25,      12,       5,       'Classical', 'Opera'),
                ('Cantatas',  26,      13,      8,        'Classical', 'General'),
                ('Road',      27,      13,      17,       'Popular', 'Country'),
                ('Paris',     18,      25,      10,       'Popular', 'Jazz'),
                ('Woman',     29,      4,        7,       'Popular', 'Blues'),
                ('Bach',      21,      13,      16,       'Classical', 'General'),
                ('Opera',     12,      32,      12,       'Classical', 'Opera'),
                ('Soul',      13,      30,      14,       'Popular', NULL),
                ('Stages',    44,      0,       8,        'Popular', 'Blues'),
                ('Bach',      15,      1,       8,        'Classical', 'General');
  
select from Sale;
  
SELECT Name, InStock, OnOrder, Reserved
FROM Sale
WHERE (InStock+OnOrder-Reserved)<20
ORDER BY Name;
           
       



Leave a Comment / Note


 
Verification is used to prevent unwanted posts (spam). .

Follow Navioo On Twitter

SQL / MySQL

 Navioo Where Clause
» Where