Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2023, 18:15   #1
rownong
Форумчанин
 
Регистрация: 06.11.2012
Сообщений: 105
По умолчанию Как работают вычисления в SQL?

Здравствуйте.
Работаю с базой данный через 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?
Вопрос аналогичный, где будет выведен результат?
Будет создана абстрактная (временная) таблица в которой будут выведены
- Номер заказа
- Количество дней между прошло между статусам "Создан" и "Завершен".
??


Последний раз редактировалось rownong; 26.12.2023 в 18:22.
rownong вне форума Ответить с цитированием
Старый 26.12.2023, 18:44   #2
Valick
Форумчанин
 
Регистрация: 27.04.2022
Сообщений: 493
По умолчанию

Цитата:
Сообщение от rownong Посмотреть сообщение
Можно ли с помощью SQL посчитать сумму за каждый заказ умножив
да
Цитата:
Сообщение от rownong Посмотреть сообщение
Нужно посчитать с помощью SQL сколько дней для Заказа "123" прошло между статусам "Создан" и "Завершен".
да
Цитата:
Сообщение от rownong Посмотреть сообщение
Будет создана абстрактная (временная) таблица в которой будут выведены
да
Valick вне форума Ответить с цитированием
Старый 26.12.2023, 18:47   #3
Valick
Форумчанин
 
Регистрация: 27.04.2022
Сообщений: 493
По умолчанию

Цитата:
Сообщение от rownong Посмотреть сообщение
Заинтересовали расчеты с помощью SQL
https://www.labirint.ru/books/340500/
Valick вне форума Ответить с цитированием
Старый 26.12.2023, 19:44   #4
rownong
Форумчанин
 
Регистрация: 06.11.2012
Сообщений: 105
По умолчанию

Цитата:
Сообщение от Valick Посмотреть сообщение
да
> Будет создана абстрактная (временная) таблица в которой будут выведены
> да
А какие будут названия абстрактных полей (временных)? Или это можно указывать?
rownong вне форума Ответить с цитированием
Старый 26.12.2023, 21:06   #5
Valick
Форумчанин
 
Регистрация: 27.04.2022
Сообщений: 493
По умолчанию

Названия полей перечислены в SELECT данные не беруться из ниоткуда они беруться из конкретных столбцов (полей).
Полное имя столбца может состоять из "название базы данных.название таблицы.название поля", а ещё для любых таких названий можно указывать ALIAS (альтернативное имя).
Всё это и ещё массу всего интересного (без сарказма) можно узнать из указанной выше книги.
Valick вне форума Ответить с цитированием
Старый 26.12.2023, 21:29   #6
rownong
Форумчанин
 
Регистрация: 06.11.2012
Сообщений: 105
По умолчанию

Цитата:
Сообщение от Valick Посмотреть сообщение
а ещё для любых таких названий можно указывать ALIAS (альтернативное имя)
Это интересно. Спасибо!
rownong вне форума Ответить с цитированием
Старый 29.12.2023, 04:13   #7
rownong
Форумчанин
 
Регистрация: 06.11.2012
Сообщений: 105
По умолчанию

Когда делаем SQL запрос чтобы соединить 2 таблицы можем в результате скрывать (не выводить) определённые столбцы? Вернее, выводить только нужны столбцы из обоих таблиц

Если есть например 10 менеджеров по продажам, мы можем в результате SQL запроса вывести не 10 строка с суммой продажи каждого менеджера за месяц, а 1 строк с суммой продаж всех менеджеров за месяц?
rownong вне форума Ответить с цитированием
Старый 29.12.2023, 08:53   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
Сообщение от rownong Посмотреть сообщение
Вернее, выводить только нужны столбцы из обоих таблиц
Естественно, откройте любую книжнку по SQL и прочитайте про SELECT

Цитата:
Сообщение от rownong Посмотреть сообщение
а 1 строк с суммой продаж всех менеджеров за месяц?
Естественно
p51x вне форума Ответить с цитированием
Старый 02.01.2024, 12:16   #9
rownong
Форумчанин
 
Регистрация: 06.11.2012
Сообщений: 105
По умолчанию

p51x спасибо
rownong вне форума Ответить с цитированием
Старый 02.01.2024, 12:18   #10
rownong
Форумчанин
 
Регистрация: 06.11.2012
Сообщений: 105
По умолчанию

Еще подскажите:

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

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

Пример значений поля log
{"items_data":[{"item_sid":"7069294","qty":1}],"contact_phone":"79778681007","con tact_name":"u0421u043eu0431u0441u04 42u0432u0435u043du043du0430u044f u0437u0430u044fu0432u043au0430","co ntact_email":"service@yandex.ru","j p_purchase_id":"395948"}

{"items_data":[{"item_sid":"2388062","qty":2}],"contact_phone":"79778681007","con tact_name":"u0421u043eu0431u0441u04 42u0432u0435u043du043du0430u044f u0437u0430u044fu0432u043au0430","co ntact_email":"service@yandex.ru","j p_purchase_id":"395948"}

Интересует как это указывать в запросе и в фильтре PhpMyAdmin.

rownong вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать абстрактный класс (кривые) для вычисления координаты для некоторой x. Создать производные классы: прямая, эллипс, гипербола со своими функциями вычисления y в зависимости от входного Apels1nka Помощь студентам 0 30.04.2022 12:30
Проблема с циклом. Компилируется нормально,кнопки Один,Два,Три,Четыре и Пять работают хорошо,но кнопки 6 и 7 не работают. Bananiys24 Общие вопросы по Java, Java SE, Kotlin 1 16.06.2017 17:01
Не работают приложения litnik Python 3 22.11.2016 22:30
Написать программу вычисления площади многоугольника используя формулу для вычисления площади треугольника в качестве подпрограммы сердце Паскаль, Turbo Pascal, PascalABC.NET 0 24.12.2012 18:21
Не работают процедуры TI_ProJecT Помощь студентам 0 20.12.2011 00:16