@@ -27,3 +27,65 @@ VALUES
2727
2828/* Добавить из таблицы supply в таблицу book, все книги,
2929 кроме книг, написанных Булгаковым М.А. и Достоевским Ф.М. */
30+ -- 1 variant
31+ INSERT INTO book (title, author, price, amount)
32+ SELECT title, author, price, amount
33+ FROM supply
34+ WHERE (author <> ' Булгаков М.А.' AND author <> ' Достоевский Ф.М.' );
35+ -- 2 variant
36+ INSERT INTO book(title, author, price, amount)
37+ SELECT title, author, price, amount
38+ FROM supply
39+ WHERE author NOT IN (' Булгаков М.А.' , ' Достоевский Ф.М.' );
40+
41+ /* Занести из таблицы supply в таблицу book только те книги, авторов которых нет в book. */
42+ INSERT INTO book (title, author, price, amount)
43+ SELECT title, author, price, amount
44+ FROM supply
45+ WHERE author NOT IN (SELECT author FROM book);
46+
47+ /* Уменьшить на 10% цену тех книг в таблице book, количество которых принадлежит интервалу от 5 до 10 включительно. */
48+ UPDATE book
49+ SET price = 0 .9 * price
50+ WHERE amount BETWEEN 5 AND 10 ;
51+
52+ /* В таблице book необходимо скорректировать значение для покупателя в столбце buy
53+ таким образом, чтобы оно не превышало допустимый остаток в столбце amount.
54+ А цену тех книг, которые покупатель не заказывал, снизить на 10%. */
55+ UPDATE book
56+ SET buy = IF(buy > amount, amount, buy),
57+ price = IF(buy = 0 , 0 .9 * price, price);
58+
59+ /* Для тех книг в таблице book , которые есть в таблице supply, не только увеличить их количество в таблице book
60+ (увеличить их количество на значение столбца amountтаблицы supply), но и пересчитать их цену (для каждой книги
61+ найти сумму цен из таблиц book и supply и разделить на 2). */
62+ UPDATE book, supply
63+ SET book .amount = book .amount + supply .amount ,
64+ book .price = (book .price + supply .price ) / 2
65+ WHERE book .title = supply .title AND book .author = supply .author ;
66+
67+ /* Удалить из таблицы supply книги тех авторов, общее количество экземпляров книг которых в таблице book превышает 10. */
68+ DELETE FROM supply
69+ WHERE author IN (
70+ SELECT author
71+ FROM book
72+ GROUP BY author
73+ HAVING SUM (amount) > 10 );
74+
75+ /* Создать таблицу заказ (ordering), куда включить авторов и названия тех книг, количество
76+ экземпляров которых в таблице book меньше среднего количества экземпляров книг в таблице book.
77+ В таблицу включить столбец amount, в котором для всех книг указать одинаковое значение -
78+ среднее количество экземпляров книг в таблице book. */
79+ CREATE TABLE ordering AS
80+ SELECT author, title,
81+ (SELECT FLOOR(AVG (amount)) FROM book) AS amount
82+ FROM book
83+ WHERE amount < (SELECT AVG (amount) FROM book);
84+
85+ -- Придумайте один или несколько запросов корректировки данных к таблицам book и supply.
86+ CREATE TABLE difference AS
87+ SELECT title, author, price, amount
88+ FROM book
89+ WHERE title NOT IN (SELECT title
90+ FROM supply);
91+ SELECT * FROM difference;
0 commit comments