Вопрос по sql, mysql – MySQL query - 'CAST' 'CONCAT' - Как умножить несколько строк данных на определенное количество и отобразить их отдельные итоги в новом столбце в?

0

Какой лучший способ запросить общую цену?

Я хочу умножить несколько строк данных на определенное количество и отобразить их отдельные итоги в новом столбце в & # xA3; & s; в моей базе данных?

Какой синтаксис мне нужен?

Edit:

У меня много клиентов. У некоторых есть только один заказ, у некоторых - несколько заказов. Я хочу начать взимать с них 1,50 за заказ, поэтому мне нужно в x раз увеличить сумму заказа на & lt; 1,50 и отобразить ее в новом столбце в & # xA3 ;. Например, для клиентов с 4 заказами должно быть значение x & # xA3; 1,50, которое будет отображать 6,00 в столбце 3 и т. Д. 1-й столбец - это имя, второй столбец - сумма заказа. 3-й столбец должен быть общей ценой. Надеюсь, что это имеет смысл

Update from comments: Это посчитало заказы, однако это возвращаетBLOB значения в 3-м столбце, где я хочу отобразить & # xA3; значения для * расчета заказов:

<code> SELECT   CONCAT_WS(" "
              , c.customer_title
              , c.customer_fname
              , c.customer_sname
           ) AS Customer
          , COUNT(O.order_name) AS Ordertotal
          , concat('£' * 1.5) TotalPrice 
 FROM   Order O, Friend F, Customer C, FriendOrder 
 WHERE C.customer_id = F.Customer_id 
 AND   F.Friend_id = FriendOrder.friend_id 
 AND   O.order_id = FriendOrder.order_id 
 GROUP BY Customer 
 ORDER BY C.customer_sname, C.customer_fname 
</code>
любые идеи @ dweiss user1335184
О каких данных мы говорим? Какие типы столбцов? dweiss
@ user1335184 - Добро пожаловать в stackoverflow. Это хорошее описание цели. Не хватает только вашей структуры таблицы (то есть столбцов и типов данных) и, возможно, некоторых примеров данных. Вы можете обновить свой вопрос, чтобы добавить больше деталей. Чем точнее детали, тем точнее будут ответы :) Leigh
У меня много клиентов. У некоторых есть только один заказ, у некоторых - несколько заказов. Я хочу начать взимать с них 1,50 за заказ, поэтому мне нужно в x раз увеличить сумму заказа на & lt; 1,50 и отобразить ее в новом столбце в & # xA3 ;. Например, для клиентов с 4 заказами должно быть значение x & # xA3; 1,50, которое будет отображать 6,00 в столбце 3 и т. Д. 1-й столбец - это имя, второй столбец - сумма заказа. 3-й столбец должен быть общей ценой. Надеюсь, что это имеет смысл user1335184
Спасибо @Leigh, однако, пока у меня есть это, он посчитал заказы, однако он возвращает BLOB. значения в 3-м столбце, где я хочу отобразить & # xA3; значения для * расчета заказов: SELECT CONCAT_WS (& quot; & quot ;, c.customer_title, c.customer_fname, c.customer_sname) AS Customer, COUNT (O.order_name) AS Ordertotal, concat (& apos; & # xA3; & apos; * 1.5) TotalPrice ОТ заказа O, Друг F, Клиент C, FriendOrder ГДЕ C.customer_id = F.Customer_id И F.Friend_id = FriendOrder.friend_id AND O.order_id = FriendOrder.order_id ГРУППА ПО ЗАКАЗЧИКУ ПО С.Customer_sname, C. customer_fname user1335184

Ваш Ответ

3   ответа
0

оставляя вычисления для программирования SQL и представление для любого языка программирования, который вы используете для внешнего интерфейса.

Таким образом, ваш SQL должен использовать его собственный оператор *. Ваш запрос может выглядеть так:

SELECT `column_1` * `column_2` as `product`;

это вернуло бы произведение двух столбцов в столбце с именем «продукт».

& # XA3; знак форматирования. Вы должны оставить это любой архитектуре, которую вы написали для представления информации. (Например, PHP или Java)

Надеюсь, это более полезно. ВЫБЕРИТЕ СЧЕТ (*) * 1.5 какtotal ОТ клиентов гдеcustomer_number= "(немного #)";
Да, простите меня, я начал пост до вашего комментария выше.
Спасибо за ваш вклад. НО ... я хочу делать Суммы и начинать взимать плату с клиентов, умножая их номера заказов на & lt; 1,50 каждый раз, и отображать эту общую стоимость в 3-м столбце .... Вот почему мне нужно отобразить 3-й столбец, чтобы показать эту сумму из моего запроса ... user1335184
0

это должно сработать:

select c.name, count(*) orderAmount, concat('£', count(*) * 1.5) totalPrice
from customers c
join orders o on c.customerId = o.customerId
group by c.customerId, c.name
есть идеи @ Мосты Мостачо? user1335184
@ user1335184 Как я уже писал в ответе, не пользуйтесьconcat('£' * 1.5), использованиеconcat('£', count(*) * 1.5).
Благодарю @GRY, однако, пока у меня есть это, он посчитал заказы, однако он возвратил BLOB. значения в 3-м столбце, где я хочу отобразить & # xA3; значения для * расчета заказов: SELECT CONCAT_WS (& quot; & quot ;, c.customer_title, c.customer_fname, c.customer_sname) AS Customer, COUNT (O.order_name) AS Ordertotal, concat (& apos; & # xA3; & apos; * 1.5) TotalPrice ОТ заказа O, Друг F, Клиент C, FriendOrder ГДЕ C.customer_id = F.Customer_id И F.Friend_id = FriendOrder.friend_id AND O.order_id = FriendOrder.order_id ГРУППА ПО ЗАКАЗЧИКУ ПО С.Customer_sname, C. customer_fname user1335184
0

поскольку это затрудняет поиск вопроса.

Похоже, все ответили, кроме части блоба - вот конечный результат:

SELECT
    CONCAT_WS(
        " ",
        c.customer_title,
        c.customer_fname,
        c.customer_sname
    ) AS Customer,
    COUNT(*) AS Ordertotal,
    CONCAT('£', cast(count(*) * 1.5 as char)) AS TotalPrice 
FROM Order O
INNER JOIN FriendOrder fo
ON O.order_id = fo.order_id
INNER JOIN Friend F
ON fo.friend_id = F.Friend_id
INNER JOIN Customer C
ON F.Customer_id = C.customer_id
GROUP BY Customer 
ORDER BY C.customer_sname, C.customer_fname 

Чтобы избежать "больших двоичных объектов", приведите их к типу char, поскольку вы создаете строку отображения. Вот фрагмент из запроса:

cast(count(*) * 1.5 as char)

Похожие вопросы