4

SQL*Plus を使用して、顧客に電子メールで送信されるリストを生成します。例:

SET MARKUP HTML ON
SPOOL spool.html
SELECT order_number, entry_date, delivery_date, customer_order_number, order_totals_quantity, TRUNC(order_totals_sqm,2), order_totals_net_value FROM orders WHERE entry_date = SYSDATE;

リストされたフィールドの合計を表示する行を作成し、order_totalsそれらのフィールドと一致させるにはどうすればよいですか?

つまり、SELECT COUNT()これらのフィールドを個別に作成した場合、実際には元のフィールドの下にある必要があるときに、最初の 3 つの下にリストされますSELECT

更新:可能であれば、これが私が探しているものです。

other columns ... order_totals_quantity | TRUNC(order_totals_sqm,2) | order_totals_net_value
--------------------------------------------------------------------------------------------
                  Total                 | Total                     | Total
4

3 に答える 3

0

SQL*Plus を使用しているため、計算を使用するより簡単な方法があります。これには、サーバー上で余分な SQL が実行されないという利点があります。クエリに適応できる例を次に示します。

    BREAK ON report
    COMPUTE SUM LABEL total OF a ON report

    SELECT 1 AS a FROM dual UNION ALL
    SELECT 2 AS a FROM dual UNION ALL
    SELECT 3 AS a FROM dual;

                A
    -------------
                1
                2
                3
    -------------
                6

    3 rows selected.

他の集計も使用できます。完全なドキュメントへのリンクは次のとおりです: COMPUTE

于 2015-12-03T15:41:40.627 に答える
0

多分...必要な集計と、数量を誤って合計しないように一意のレコードを示すものによって異なります。

SELECT order_number, entry_date, delivery_date, customer_order_number, 
  sum(order_totals_quantity), sum(TRUNC(order_totals_sqm,2)), sum(order_totals_net_value)
FROM orders 
WHERE entry_date = SYSDATE;
GROUP BY GROUPING SETS ((order_number, entry_date, delivery_date, customer_order_number),
         ())

見つかった例: http://www.oracle-base.com/articles/misc/rollup-cube-grouping-functions-and-grouping-sets.php

于 2013-11-06T13:38:23.520 に答える
0

これを試してください[オラクルを使用していると仮定して]:

SELECT order_number, entry_date, delivery_date, customer_order_number, order_totals_quantity, TRUNC(order_totals_sqm,2), order_totals_net_value,tot.a, tot.b 
FROM orders, (select sum(order_totals_quantity) a, sum(order_totals_net_value ) b from orders WHERE entry_date = SYSDATE) tot 
WHERE entry_date = SYSDATE;
于 2013-11-06T13:39:47.693 に答える