powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запросы по выборке и статистике
10 сообщений из 10, страница 1 из 1
Запросы по выборке и статистике
    #39126545
PROaction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!

Помогите пожалуйста написать три запроса.

1) Количество товара (всего) на складе.
2) Выбрать товары, которые поставляет данный поставщик.
3) Вставка новой покупки/поставки.
4) Рейтинг работников по сумме продаж в текущем месяце.

Третий я понял как делать:
Код: sql
1.
insert into buys(buyDate, idWorker) values ('2015-11-22 15:00:00', 1);



Но все остальные понять не могу, как делать. Я так понял, что первые два это на выборку, а последний это на статистику.

Вот таблицы:
...
Рейтинг: 0 / 0
Запросы по выборке и статистике
    #39127080
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну во первых, если workers - это приказчикипродавцыменеджеры по продажам, то buys надо изменить на sells/orders :)
Во-вторых:
1)читать про sum(), join и where;
2)читать про distinct, join и where;
3)вы ещё забыли добавление состава поставки/продажи;
4)читать про sum(), join, where, group by и order by.
В-третьих, если не хочется про всё это читать, а потом ещё и осмысливать, то вам сюда .
...
Рейтинг: 0 / 0
Запросы по выборке и статистике
    #39129954
PROaction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,
tanglirВ-третьих, если не хочется про всё это читать, а потом ещё и осмысливать...
Не, надо разобраться. Просто не знал с чего начать и какие команды использовать.

Ну вот вроде получилось что-то. Но у меня есть пара вопросов.
1. Можно ли сделать вставку (задание 3) одним запросом, а не двумя?
2. По заданию №4 считать кол-во продаж нужно за текущий месяц, как прописать условие в WHERE, чтобы кол-во товара бралось только из текущего месяца?

1) Количество товара (всего) на складе.
Код: sql
1.
SELECT sum(supplyQuantity) FROM supplys INNER JOIN squantitys using(idSupply);



2) Выбрать товары, которые поставляет данный поставщик.
Код: sql
1.
SELECT distinct idProduct FROM supplys INNER JOIN squantitys using(idSupply) where idLifnr = 1;



3) Вставка новой покупки/поставки.
Код: sql
1.
2.
INSERT INTO buys(buyDate, idWorker) VALUES ('2015-11-22 15:00:00', 1);
INSERT INTO bquantitys(idBuy, idProduct, buyQuantity) VALUES (4, 2, 45);



4) Рейтинг работников по сумме продаж в текущем месяце.
Код: sql
1.
SELECT sum(buyQuantity) FROM buys INNER JOIN bquantitys using(idBuy) WHERE idWorker = 1 ORDER BY idWorker;
...
Рейтинг: 0 / 0
Запросы по выборке и статистике
    #39130392
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Нет, вы же вставляете в две таблицы.
2.
Код: sql
1.
2.
3.
buydate >= date_add(CURDATE(), interval (1-day(CURDATE())) DAY)
AND
buydate < date_add(date_add(CURDATE(), interval (1-day(CURDATE())) DAY),interval 1 MONTH)


1)Это только приход, а где расход? И почему складывается всё подряд? а хотя да, у товаров же нет единиц измерения. Ну, тогда всё в порядке
4)Ордербай не тот, вам же по сумме надо сортировать.
...
Рейтинг: 0 / 0
Запросы по выборке и статистике
    #39132396
PROaction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,
2 и 3 приняли, а 1 и 4 нет(

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

В 4 нужно посчитать сумму денег, которые принес каждый продавец.

Я если честно не соображу как делать. В 1 нужно 4 таблицы соединять, но у меня не получается. Есть идеи?=)
...
Рейтинг: 0 / 0
Запросы по выборке и статистике
    #39132406
PROaction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1ое вроде понял, как делать:
Код: sql
1.
SELECT squantitys.idProduct, supplyQuantity - buyQuantity  FROM squantitys LEFT JOIN supplys on supplys.idSupply = squantitys.idSupply, bquantitys LEFT JOIN buys on buys.idBuy=bquantitys.idBuy Where bquantitys.idProduct = squantitys.idProduct;
...
Рейтинг: 0 / 0
Запросы по выборке и статистике
    #39132427
PROaction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А 4ый вроде так:
Код: sql
1.
2.
3.
select idWorker, (bquantitys.buyQuantity * products.productCost) AS rating from bquantitys LEFT JOIN buys on buys.idBuy = bquantitys.idBuy LEFT JOIN products on bquantitys.idProduct = products.idProduct Where (bquantitys.idProduct = products.idProduct) AND buydate >= date_add(CURDATE(), interval (1-day(CURDATE())) DAY)
AND
buydate < date_add(date_add(CURDATE(), interval (1-day(CURDATE())) DAY),interval 1 MONTH) order by rating DESC;



Верно?
...
Рейтинг: 0 / 0
Запросы по выборке и статистике
    #39132602
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PROaction1ое вроде понял, как делать:Для реализации исходной формулировки прокатит, "но есть один нюанс"(с) - оно будет работать только по всем операциям, а стоит задать определённый период - и ага. Почему, предлагаю подумать самостоятельно.
PROactionА 4ый вроде так:ну с виду вроде верно.
...
Рейтинг: 0 / 0
Запросы по выборке и статистике
    #39136625
PROaction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,
не могу никак сделать я выборку на кол-во товаров на складе.
Тут нужны подзапросы.
У меня логика такая: сосчитать одним запросом сумму каждого товара в поставке и сумму каждого товара в покупке, а потом вычитать одно из другого, но реализовать у меня не получается.
Может быть Вы знаете, как это сделать?

Пока у меня получилось следующее:
Код: sql
1.
SELECT * FROM (SELECT idProduct, sum(supplyQuantity) FROM squantitys group by idProduct) as sumSup, (SELECT idProduct, sum(buyQuantity) FROM bquantitys group by idProduct) as sumBuy;



Но в этом запросе по нескольку раз одни и те же товары выскакивают. Нужно, я так понимаю, присоединить таблицу products и сравнивать products.idProduct c b/sQuantitys.idProducts, но как я не знаю(
...
Рейтинг: 0 / 0
Запросы по выборке и статистике
    #39136693
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PROaction,

Код: sql
1.
2.
3.
4.
...
from products
left join (SELECT idProduct, sum(supplyQuantity) FROM squantitys group by idProduct) using (idProduct)
left join (SELECT idProduct, sum(buyQuantity) FROM bquantitys group by idProduct) using (idProduct)
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запросы по выборке и статистике
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]