Я новичок в SQL, я пытался выполнить эту небольшую задачу, но продолжаю получать ... Пустой набор (0,00 сек)

Задача:

1) Перечислите все товары с их расширенной ценой (количество * цена)

2) Укажите общую стоимость всех товаров в магазине.

Мой вклад:

mysql> select * from store where price = Qty*Price;

То, что я думаю, я сказал, это ... выберите ВСЕ из "магазина", где моя новая обновленная цена теперь равна Qty * Price ..

Что меня ...

Пустой набор (0,00 с)

Вот мой код для "магазина".

INSERT INTO `store` (`Id`, `Name`, `Qty`, `Price`) VALUES

    (1, 'apple', 10, 1),

    (2, 'pear', 5, 2),

    (3, 'banana', 10, 1.5),

    (6, 'lemon', 100, 0.1),

    (5, 'orange', 50, 0.2);

Может ли кто-нибудь помочь, почему это происходит?

Спасибо!

3
Leslie Tate 3 Окт 2016 в 02:04

3 ответа

Лучший ответ

В итоге я использовал ....

ВЫБЕРИТЕ *, Кол-во * Цена как «Общая цена» из магазина;

Которая объединила ответы нескольких людей и получила ответ / формат, который я искал.

0
Leslie Tate 2 Окт 2016 в 23:32

В документации MySQL для предложения WHERE говорится:

Предложение MySQL WHERE используется для фильтрации результатов операторов SELECT, INSERT, UPDATE или DELETE.

Поэтому вы пытаетесь отфильтровать все строки, в которых значение столбца с именем price равно значениям столбцов QTY * PRICE, что никогда не встречается в вашем store table ... следовательно, пустой набор результатов.

Вам следует обновить свои запросы, как показано в ответе @ rbr94.

1
ctj232 2 Окт 2016 в 23:22

1) Перечислите все товары с их расширенной ценой (количество * цена):

SELECT Qty*Price as extended_price FROM store

2) Перечислите общую стоимость всех товаров в магазине:

SELECT SUM(Qty*Price) as total_cost FROM store
2
rbr94 2 Окт 2016 в 23:08