Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用SQL*Plus从上一次选择中选择总计_Sql_Sqlplus - Fatal编程技术网

使用SQL*Plus从上一次选择中选择总计

使用SQL*Plus从上一次选择中选择总计,sql,sqlplus,Sql,Sqlplus,使用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;

使用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\u totals
字段的总数,并使它们与这些字段保持一致

i、 e.如果我为这些字段单独做了一个
SELECT COUNT()
,当它们确实需要位于原始
SELECT
下面时,它会将它们列在前3个字段下面

更新:如果可能的话,这就是我想要的

other columns ... order_totals_quantity | TRUNC(order_totals_sqm,2) | order_totals_net_value
--------------------------------------------------------------------------------------------
                  Total                 | Total                     | Total
也许。。。 取决于您想要的聚合以及表示唯一记录的内容,以避免错误地求和数量

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),
         ())

找到的示例:

试试这个[假设您使用的是oracle]:

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;

当您使用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.

您也可以使用其他聚合。这里是完整文档的链接:。

您能显示完整的SELECT语句吗?你的例子是一个无效的陈述(它缺少中的)。我相信你所追求的是使用
group by grouping set
,但我需要查看预期结果的例子,以了解你想要如何处理itI。我已经更新了问题,例如查看你的链接,我想知道OP是否不是在一个
逐组汇总之后
我更新了一个问题,例如,如果这有帮助,我在寻找什么。@user2656114那么上面列出的逐组汇总或逐组集合是否满足您的需要?