0

查询总价的最佳方法是什么?

我想将几行数据乘以一定数量,并在我的数据库中£'s 的新列中显示它们各自的总数?

我需要什么语法?

编辑:

我有很多客户。有的只有一个订单,有的有多个订单。我想开始向他们收取每笔订单 1.50 英镑的费用,因此,我需要 x(乘以)1.50 英镑的订单金额,并将其显示在一个新的列中,以英镑为单位。例如,有 4 个订单的客户需要 x 1.50 英镑,这将在第 3 列中显示 6.00 英镑,依此类推... 1.st 列是名称,第二列是订单金额。第三列需要是总价。希望这是有道理的

来自评论 的更新:它计算了订单,但是它BLOB在第三列中返回值,我想在其中显示 £ 值以进行 * 订单计算:

 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 
4

3 回答 3

0

您不应该将答案添加到原始问题中,因为这会使找出问题变得混乱。

看起来除了 blob 部分之外的所有内容都得到了回答——这是最终结果:

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 

为避免出现“blob”,请转换为 char,因为您正在创建显示字符串。以下是查询的片段:

cast(count(*) * 1.5 as char)
于 2013-01-23T17:18:37.850 回答
0

最好的做法是将任务分开,将计算留给 SQL 编程,并将呈现给您用于前端的任何编程语言。

所以你的 SQL 应该使用它的原生 * 运算符。您的查询可能如下所示:

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

这将返回名为“产品”的列中两列的乘积。

£ 符号正在格式化。您应该将其留给您为呈现信息而编写的任何架构。(例如 PHP 或 java)

于 2012-05-01T21:52:51.593 回答
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
于 2012-05-01T21:56:16.207 回答