Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 204
1

Как работают вычисления в SQL?

26.12.2023, 18:15. Показов 1747. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте.
Работаю с базой данный через PhpMyAdmin.
В нем можно отправлять SQL запросы к базе и в интерфейсе PhpMyAdmin видеть результат. Заинтересовали расчеты с помощью SQL. Помогите с ними разобраться.

Пример 1.
Есть Таблица с одинаковым товаром, с полями
- номер заказа
- количество проданного товара
- стоимость товара за штуку

Можно ли с помощью SQL посчитать сумму за каждый заказ умножив
(количество проданного товара)*(стоимость товара за штуку)?

Где в таком случае выведется результат произведения?
Будет создан абстрактный (временный) столбец, где выведутся произведения для каждого заказа?
Объясните, пожалуйста, как это работает.

--

Пример 2.
Есть таблицы с полями
- Номер заказа
- Статус заказа
- Дата время наступления статуса

Строка 1:
- Номер заказа: "123"
- Статус заказа: "Создан"
- Дата время наступления статуса: "01.12.2023"

Строка 2:
- Номер заказа: "123"
- Статус заказа: "Завершен"
- Дата время наступления статуса: "03.12.2023"

Нужно посчитать с помощью SQL сколько дней для Заказа "123" прошло между статусам "Создан" и "Завершен".
Т.е. "03.12.2023" - "01.12.2023" = 2дня
Можно ли это посчитать через SQL?
Вопрос аналогичный, где будет выведен результат?
Будет создана абстрактная (временная) таблица в которой будут выведены
- Номер заказа
- Количество дней между прошло между статусам "Создан" и "Завершен".
??
Как работают вычисления в SQL?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.12.2023, 18:15
Ответы с готовыми решениями:

Как правильно работают региональные настройки в SQL 2000?
вот такая проблема выполняю запрос Insert вставляю дату в русском формате дд.мм.гггг - возникает...

SQL Запросы. MS SQL. 3. Приложения, которые работают со всеми серверами БД
Всем доброго времени суток! Есть задача: Приложения, которые работают со всеми серверами БД. ...

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

Не работают sql запросы
База данных «БАНК». Даны отношения, моделирующие работу банка и его филиалов. Клиент может...

14
176 / 74 / 27
Регистрация: 10.11.2023
Сообщений: 198
26.12.2023, 21:26 2
Цитата Сообщение от rownong Посмотреть сообщение
Можно ли с помощью SQL посчитать сумму за каждый заказ умножив
(количество проданного товара)*(стоимость товара за штуку)?
SQL
1
SELECT `amount` * `cost` FROM `table1`;
Цитата Сообщение от rownong Посмотреть сообщение
Нужно посчитать с помощью SQL сколько дней для Заказа "123" прошло между статусам "Создан" и "Завершен".
Т.е. "03.12.2023" - "01.12.2023" = 2дня
SQL
1
2
SELECT DATEDIFF((SELECT `date` FROM `table2` WHERE `order_num`="123" AND `status` ="Завершен") 
,(SELECT `date` FROM `table2` WHERE `order_num`="123" AND `status` ="Создан") ) diff;

Цитата Сообщение от rownong Посмотреть сообщение
Где в таком случае выведется результат произведения?
Будет создан абстрактный (временный) столбец, где выведутся произведения для каждого заказа?
Оператор select вернет набор строк (возможно ноль строк) , результат
отобразится в окне вывода, ничего никуда не сохранится.

Если нужно результат сохранять в таблицу, то создайте таблицу и добавляйте в нее результат SQL INSERT INTO SELECT

Не по теме:

Цитата Сообщение от rownong Посмотреть сообщение
Я не программист.
я тоже . 1:1

0
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 204
29.12.2023, 05:06  [ТС] 3
Когда делаем SQL запрос чтобы соединить 2 таблицы можем в результате скрывать (не выводить) определённые столбцы? Вернее, выводить только нужны столбцы из обоих таблиц

Если есть например 10 менеджеров по продажам, мы можем в результате SQL запроса вывести не 10 строка с суммой продажи каждого менеджера за месяц, а 1 строк с суммой продаж всех менеджеров за месяц?
0
176 / 74 / 27
Регистрация: 10.11.2023
Сообщений: 198
29.12.2023, 13:32 4
1) а в чем подвох? после слова select укажите необходимые столбцы.
2) если правильно понял, вам нужна функция SUM
1
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 204
02.01.2024, 12:15  [ТС] 5
Цитата Сообщение от ZeroKara Посмотреть сообщение
1) а в чем подвох? после слова select укажите необходимые столбцы.
2) если правильно понял, вам нужна функция SUM
Спасибо.
0
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 204
02.01.2024, 12:21  [ТС] 6
Еще подскажите:

1. При SQL запросе, когда создаем абстрактные (не существующие) поле (столбцы) можно ли кроме присвоения им имен, также добавлять комментарии, на время просмотра SQL запроса?
Аналогично как это сделано например в PhpMyAdmin для обычных полей (столбцов)?

2. Какой оператор нужно использовать, чтобы использовать фильтр типа "содержит"?
Например выбрать все записи из table1, в которых поле log содержит текст "395948"

Пример значений поля log
JSON
1
{"items_data":[{"item_sid":"7069294","qty":1}],"contact_phone":"79778681007","contact_name":"u0421u043eu0431u0441u0442u0432u0435u043du043du0430u044f u0437u0430u044fu0432u043au0430","contact_email":"service@yandex.ru","jp_purchase_id":"395948"}
JSON
1
{"items_data":[{"item_sid":"2388062","qty":2}],"contact_phone":"79778681007","contact_name":"u0421u043eu0431u0441u0442u0432u0435u043du043du0430u044f u0437u0430u044fu0432u043au0430","contact_email":"service@yandex.ru","jp_purchase_id":"395948"}
Интересует как это указывать в запросе и в фильтре PhpMyAdmin.

Как работают вычисления в SQL?

Как работают вычисления в SQL?
0
Модератор
9606 / 6215 / 2421
Регистрация: 21.01.2014
Сообщений: 26,510
Записей в блоге: 3
02.01.2024, 20:22 7
Цитата Сообщение от rownong Посмотреть сообщение
Например выбрать все записи из table1, в которых поле log содержит текст "395948"
LIKE
Цитата Сообщение от rownong Посмотреть сообщение
Пример значений поля log
Это - типичный JSON и разбирать его надо соответствующими средствами
0
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 204
06.01.2024, 01:37  [ТС] 8
Подскажите, правильно понимаю, что результатом SQL запроса могут быть:
1. Реальная таблица из БД.
2. Абстрактная таблица (с несуществующими столбцами, но которые создаем в момент запроса)
3. Число (например результат расчетов). Т.е. просто одно число (без таблиц и столбцов), которое получаем в результате.
??
0
Модератор
9606 / 6215 / 2421
Регистрация: 21.01.2014
Сообщений: 26,510
Записей в блоге: 3
09.01.2024, 05:28 9
Цитата Сообщение от rownong Посмотреть сообщение
результатом SQL запроса могут быть
Не вполне корректный вопрос! Строго говоря, SQL-запрос может просто выполнять какое-либо действие и вообще не возвращать никаких данных. А вот если Вас интересует конкретно результат выполнения SQL-запроса SELECT - то это всегда набор данных: ни число, не таблица из БД - именно свой для каждого запроса Набор Данных, со своим набором полей и определенным количеством записей.
0
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 204
15.01.2024, 21:30  [ТС] 10
Подскажите в SQL запросе возможно построить абстрактную (виртуальную) таблицу следующего вида, где показатели идут не в столбцах а в строках? Т.е. из разных таблиц собрать временные столбцы и строки такого вида как на скрине. Грубо говоря мини-дашборд.
Как работают вычисления в SQL?
0
395 / 231 / 86
Регистрация: 28.04.2022
Сообщений: 1,167
16.01.2024, 01:55 11
rownong, UNION можно использовать для этого.

MySQL
1
2
3
4
5
SELECT 'Сумма заказов', (SELECT SUM(Field_A) FROM Table_A)
   UNION
SELECT 'Себестоимость', (SELECT SUM(Field_B)/COUNT(*) FROM Table_B)
   UNION
SELECT 'Максимальная цена', (SELECT MAX(Field_Price) FROM Table_Prices);
0
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 204
19.01.2024, 16:39  [ТС] 12
Еще подскажите, создавая временные (виртуальные) поля (столбцы) в результате SQL запроса, можно им имена давать не на латинице, а на кириллице и с пробелами?
0
395 / 231 / 86
Регистрация: 28.04.2022
Сообщений: 1,167
19.01.2024, 20:48 13
Цитата Сообщение от rownong Посмотреть сообщение
можно им имена давать не на латинице, а на кириллице и с пробелами?
Если очень хочется, то можно. Только заголовок должен быть обрамлен обратными кавычками (alt + 096):
MySQL
1
SELECT 245 AS `Превед, медвед!`;
0
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 204
20.01.2024, 10:35  [ТС] 14
Gluck99 спасибо! Проверю.

Добавлено через 9 секунд
Подскажите, если есть столбце с полем артикул и в каждой строке перед артикулом приставка "1-" (например 1-23442242), то как вырезать эту приставку "1-" SQL-ем чтобы далее производить вычисления чистым артикулом?
0
395 / 231 / 86
Регистрация: 28.04.2022
Сообщений: 1,167
20.01.2024, 19:28 15
Цитата Сообщение от rownong Посмотреть сообщение
как вырезать эту приставку "1-"
MySQL
1
2
3
4
SELECT RIGHT('1-23442242', LENGTH('1-23442242') - 2);
 
SELECT RIGHT(PartNumber, LENGTH(PartNumber) - 2) AS PartNumber
FROM products;
0
20.01.2024, 19:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.01.2024, 19:28
Помогаю со студенческими работами здесь

Не работают задние USB а передние работают как по маслу в чем дело.
Здравствуйте.Включил комп и заметил что не работает принтер подумал что отключил от питания а...

Не работают SQL-запросы к LocalDB
Создал LocalDB, добавил туда таблицу, определение таблицы ниже. CREATE TABLE . ( INT NOT...

SQL запросы не работают в отдельном классе
Добрый день обитатели форму. Пишу приложение на winform с базой данных. Захотел все запросы...

Перевел базу на ms sql не работают запросы
Добрый вечер, перевел БД access на базу на ms sql в результате перестали работать запросы. Как...

Не работают диаграммы в MS SQL Server Management Studios
Здравствуйте. Столкнулся вот с такой проблемой, во время попытки создания диаграммы базы данных...

Не работают VBA функции в SQL запросе к БД в Access
Уважаемые форумчане! В Аccess был написан запрос, использующий несколько функций, написанных там...

SQL запросы на вычисления
В Access есть следующие таблицы: Abiturient с полями:Cod, CodFIOAbiturSvedeniya, CodSpecialnost,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru