0

合計金額を照会する最良の方法は何ですか?

いくつかのデータ行に特定の金額を掛けて、個々の合計をデータベースの新しい列に £ で表示したいですか?

どのような構文が必要ですか?

編集:

たくさんのお客様がいます。注文が 1 つしかないものもあれば、複数の注文があるものもあります。注文ごとに £1.50 の請求を開始したいので、注文金額に £1.50 を掛けて、新しい列に £ で表示する必要があります。たとえば、注文数が 4 の顧客は x £1.50 である必要があり、列 3 に £6.00 と表示されます... 1 番目の列は名前、2 番目の列は注文金額です。3 列目は合計金額である必要があります。それが理にかなっていることを願っています

コメントから の更新: 注文はカウントされBLOBますが、注文の計算のために £ 値を表示したい 3 番目の列に値が返されます。

 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

データとフィールドの説明が不足しているため、多くの想像力を適用すると、これでうまくいくはずです。

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 に答える
0

タスクを分離し、計算を SQL プログラミングに任せ、表示をフロント エンドに使用するプログラミング言語に任せることがベスト プラクティスです。

したがって、SQL はネイティブの * 演算子を使用する必要があります。クエリは次のようになります。

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

これは、'product' という名前の列の 2 つの列の積を返します。

£ 記号は書式設定中です。情報を表示するために作成したアーキテクチャに任せる必要があります。(たとえば、PHP または Java)

于 2012-05-01T21:52:51.593 に答える
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 

「blob」を回避するには、表示文字列を作成しているため、char にキャストします。クエリのスニペットは次のとおりです。

cast(count(*) * 1.5 as char)
于 2013-01-23T17:18:37.850 に答える