Подкорректировать запросы в MySql

216
12 декабря 2017, 17:22

Вывести предприятия, являющиеся нерентабельными в текущем году.

Я предположил, что можно использовать формулу "выручку - закупочная цена* на объём" и когда она не будет меньше 0 (то есть минус), то предприятие не ушло в минус( хотя надо ещё вычислить ЗП сотрудников и т.д, но такого в таблице нет)

SELECT `Profit`, `s`.*
FROM `Company` `k`
INNER JOIN `Supplies` `s` USING (`ID_Company`)
INNER JOIN `Production` `p` USING (`ID_Production`)
WHERE `k`.`Profit`-`s`.`Cost_Price`*`s`.`Size` > 0

Теперь добавил выборку по году и ничего не выводит, в чём проблема, не понятно.

SELECT `Profit`, `s`.* 
FROM `Company` `k`
 INNER JOIN `Supplies` `s` USING (`ID_Company`)
 INNER JOIN `Production` `p` USING (`ID_Production`)
 WHERE `k`.`Profit`-`s`.`Cost_Price`*`s`.`Size` < 0 and YEAR(`s`.`Date_Supplies` = 2017);

Определить, предприятие какого вида собственности является ведущим в поставке заданного вида продукции.

Запрос мне не дался и я запутался.

SELECT `Profit`, `k`.* 
    FROM `Company` `k`
     INNER JOIN `Supplies` `s` USING (`ID_Company`)
     INNER JOIN `Production` `p` USING (`ID_Production`)
     WHERE `k`.`Main_Voew_Products` = `p`.`Name_Production` and MAX(Size)

Определить объем дохода на одного работника в каждом предприятии.

Решил что при деление Выручки на работников - получим нужный объём, корректен ли запрос?

  SELECT `Profit`, `k`.* ,`k`.`Profit`/`k`.`Workers_Country` 
    FROM `Company` `k`

Вывести список продуктов, для которых закупочная цена ниже себестоимости производителя.

Верно ли составлен запрос? А если по структуре, то у меня нет производителя?(но это не важно)

SELECT `s`.* 
FROM `Production` `p` 
INNER JOIN `Supplies` `s` USING (`ID_Production`) 
WHERE `s`.`Cost_Price` > `p`.`Purchase_Price`
CREATE TABLE `Company` (
    `ID_Company` INT(11) NOT NULL AUTO_INCREMENT,
    `Name_Company` varchar(11) NOT NULL,
    `Date_Registration` DATE NOT NULL,
    `Property_Style` varchar(11) NOT NULL,
    `Workers_Country` INT(5) NOT NULL,
    `Main_View_Products` varchar(11) NOT NULL,
    `Advanced_In_Technologies` bool NOT NULL,
    `Profit` int(11) NOT NULL,
    `Note` varchar(11) NOT NULL,
    PRIMARY KEY (`ID_Company`)
);
CREATE TABLE `Production` (
    `ID_Production` int(11) NOT NULL AUTO_INCREMENT,
    `Name_Production` varchar(11) NOT NULL,
    `Unit` varchar(11) NOT NULL,
    `Purchase_Price` INT(11) NOT NULL,
    PRIMARY KEY (`ID_Production`)
);
CREATE TABLE `Supplies` (
    `ID_Supplies` INT(11) NOT NULL AUTO_INCREMENT,
    `ID_Company` INT(11) NOT NULL,
    `ID_Production` INT(11) NOT NULL,
    `Date_Supplies` DATE NOT NULL,
    `Size` INT(11) NOT NULL,
    `Cost_Price` INT(11) NOT NULL,
    PRIMARY KEY (`ID_Supplies`)
);
ALTER TABLE `Supplies` ADD CONSTRAINT `Supplies_fk0` FOREIGN KEY (`ID_Company`) REFERENCES `Company`(`ID_Company`);
ALTER TABLE `Supplies` ADD CONSTRAINT `Supplies_fk1` FOREIGN KEY (`ID_Production`) REFERENCES `Production`(`ID_Production`);
READ ALSO
Не работает MySQL на Ubuntu

Не работает MySQL на Ubuntu

У меня возникли проблемы при подключении к MySQLВыдает следующую ошибку:

249
Добавить в JOIN значение по умолчанию

Добавить в JOIN значение по умолчанию

Всем доброе время суток, есть несколько таблиц

222
Как удалить из огромной таблицы поля MySQL?

Как удалить из огромной таблицы поля MySQL?

Подскажите пожалуйста как удалить из таблицы на 1,5 миллиона строк, строки где встречается в поле "category" = 'Рубрики'В поиске phpMyAdmin выдаёт 15 строк,...

223