Загрузка данных


SELECT Т.Наименование, Е.Название
FROM Товары Т
JOIN Единицы_измерения Е ON Е.ИД_единицы = Т.ИД_единицы;

SELECT Номер_накладной, Дата_время
FROM Накладные
WHERE Тип = 'Поступление'
ORDER BY Дата_время;

SELECT Т.Наименование
FROM Товары Т
JOIN Единицы_измерения Е ON Е.ИД_единицы = Т.ИД_единицы
WHERE Е.Название = 'кг';

SELECT Т.Наименование, С.Количество
FROM Строки_накладных С
JOIN Товары Т ON Т.ИД_товара = С.ИД_товара
JOIN Накладные Н ON Н.ИД_накладной = С.ИД_накладной
WHERE Н.Номер_накладной = 'НП-001';

SELECT Н.Номер_накладной, COUNT(*) AS Количество_строк
FROM Накладные Н
JOIN Строки_накладных С ON С.ИД_накладной = Н.ИД_накладной
GROUP BY Н.Номер_накладной;

SELECT Т.Наименование, SUM(С.Количество) AS Всего_поступило
FROM Строки_накладных С
JOIN Товары Т ON Т.ИД_товара = С.ИД_товара
JOIN Накладные Н ON Н.ИД_накладной = С.ИД_накладной
WHERE Н.Тип = 'Поступление'
GROUP BY Т.Наименование;

SELECT Т.Наименование, SUM(С.Количество) AS Всего_продано
FROM Строки_накладных С
JOIN Товары Т ON Т.ИД_товара = С.ИД_товара
JOIN Накладные Н ON Н.ИД_накладной = С.ИД_накладной
WHERE Н.Тип = 'Продажа'
GROUP BY Т.Наименование
HAVING SUM(С.Количество) > 100;

SELECT Т.Наименование AS Товар,
       SUM(CASE WHEN Н.Тип = 'Поступление' THEN С.Количество ELSE -С.Количество END) AS Остаток
FROM Строки_накладных С
JOIN Товары Т ON Т.ИД_товара = С.ИД_товара
JOIN Накладные Н ON Н.ИД_накладной = С.ИД_накладной
WHERE Н.Дата_время < '20241016'
GROUP BY Т.Наименование;

SELECT Наименование
FROM Товары
WHERE ИД_товара NOT IN (
    SELECT С.ИД_товара
    FROM Строки_накладных С
    JOIN Накладные Н ON Н.ИД_накладной = С.ИД_накладной
    WHERE Н.Тип = 'Продажа'
);

SELECT Т.Наименование AS Товар,
       SUM(CASE WHEN Н.Тип = 'Поступление' THEN С.Количество ELSE -С.Количество END) AS Остаток
FROM Строки_накладных С
JOIN Товары Т ON Т.ИД_товара = С.ИД_товара
JOIN Накладные Н ON Н.ИД_накладной = С.ИД_накладной
GROUP BY Т.Наименование
HAVING SUM(CASE WHEN Н.Тип = 'Поступление' THEN С.Количество ELSE -С.Количество END) < 100
ORDER BY Остаток;