Как правильно сформировать SQL запрос?
Есть запрос
SELECT IFNULL(SUM(if(product_stock.wait_stock =0,qnt,0)),0) stock FROM product_stock GROUP by modification_product_id |
SELECT IFNULL(SUM(if(product_stock.wait_stock =0,qnt,0)),0) stock FROM product_stock GROUP by modification_product_id
Он выдает нули:
Мне нужно чтобы выдавало все записи где stock >0, пробую такие варианты но везде не верно:
SELECT IFNULL(SUM(if(product_stock.wait_stock =0,qnt,0)),0) stock FROM product_stock where stock >0 GROUP by modification_product_id |
SELECT IFNULL(SUM(if(product_stock.wait_stock =0,qnt,0)),0) stock FROM product_stock where stock >0 GROUP by modification_product_id
SELECT IFNULL(SUM(if(product_stock.wait_stock =0,qnt,0)),0) stock FROM product_stock where IFNULL(SUM(if(product_stock.wait_stock =0,qnt,0)),0) >0 GROUP by modification_product_id |
SELECT IFNULL(SUM(if(product_stock.wait_stock =0,qnt,0)),0) stock FROM product_stock where IFNULL(SUM(if(product_stock.wait_stock =0,qnt,0)),0) >0 GROUP by modification_product_id
SELECT @stock := IFNULL(SUM(if(product_stock.wait_stock =0,qnt,0)),0) stock FROM product_stock where @stock >0 GROUP by modification_product_id |
SELECT @stock := IFNULL(SUM(if(product_stock.wait_stock =0,qnt,0)),0) stock FROM product_stock where @stock >0 GROUP by modification_product_id
Подскажите пожалуйста как правильно сформировать запрос, чтобы было where stock >0?
Всем добра
Дополнительно:
Отформатируй код - больно читать.
select * from ( SELECT IFNULL(SUM(if(product_stock.wait_stock =0,qnt,0)),0) stock FROM product_stock GROUP by modification_product_id ) where stock > 0 |
select * from ( SELECT IFNULL(SUM(if(product_stock.wait_stock =0,qnt,0)),0) stock FROM product_stock GROUP by modification_product_id ) where stock > 0
или
SELECT IFNULL(SUM(if(product_stock.wait_stock =0,qnt,0)),0) stock FROM product_stock GROUP by modification_product_id having IFNULL(SUM(if(product_stock.wait_stock =0,qnt,0)),0) > 0 |
SELECT IFNULL(SUM(if(product_stock.wait_stock =0,qnt,0)),0) stock FROM product_stock GROUP by modification_product_id having IFNULL(SUM(if(product_stock.wait_stock =0,qnt,0)),0) > 0
как нибудь так
gsaw можно оформить в виде ответа.
Ответы:
Вам нужно использовать HAVING:
SELECT IFNULL(SUM(if(product_stock.wait_stock =0,qnt,0)),0) stock FROM product_stock GROUP by modification_product_id HAVING stock > 0 |
SELECT IFNULL(SUM(if(product_stock.wait_stock =0,qnt,0)),0) stock FROM product_stock GROUP by modification_product_id HAVING stock > 0
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос

Для формирования SQL запроса правильно следовать определенным шагам, чтобы обеспечить корректность и эффективность запроса. Вот несколько рекомендаций по созданию SQL запросов:
1. Определите цель запроса: Прежде всего, определите, что именно вы хотите получить из базы данных. Это поможет определить, какие таблицы и какие столбцы вам понадобятся.
2. Используйте ключевые слова: В SQL запросах используются ключевые слова, такие как SELECT, INSERT, UPDATE, DELETE, которые указывают, что именно вы хотите сделать с базой данных. Например, SELECT используется для извлечения данных, INSERT - для добавления данных, UPDATE - для обновления данных, DELETE - для удаления данных.
3. Укажите таблицу: В запросе необходимо указать таблицу, с которой вы хотите работать. Например, SELECT * FROM users - выберет все данные из таблицы пользователей.
4. Укажите условия: Если вам нужно выбрать определенные данные или выполнить операцию только для определенных записей, укажите условия с помощью ключевого слова WHERE. Например, SELECT * FROM users WHERE age > 18 - выберет всех пользователей старше 18 лет.
5. Используйте функции: SQL предоставляет множество функций, которые могут быть использованы в запросах для выполнения различных операций. Например, функции сортировки, группировки, вычисления и т. д.
Пример SQL запроса на языке PHP:
18"; $result = mysqli_query($connection, $query); while($row = mysqli_fetch_assoc($result)) { echo $row['name'] . "<br>"; } ?>
Это простой пример запроса на выборку данных из таблицы пользователей, где возраст пользователей больше 18 лет. Не забывайте, что важно следить за безопасностью запросов и использовать параметризованные запросы для предотвращения SQL инъекций.