小编Zia*_*nan的帖子

如何在一行中按顺序对所有项目的总金额进行分组

我需要计算订单中所有项目的总金额,我使用了STRING_AGG()但输出将金额划分为多行。

这是 SELECT 语句:

    SELECT b.order_id as 'Order Id',
       string_agg(e.testname,CHAR(13)) as 'Test',
       string_agg(d.PRICE,CHAR(13))  as 'Price',
       string_agg(d.test_vat,CHAR(13))  as '15% Vat',
       sum(convert(float,d.TOTAL_AMOUNT)) as 'Total'
     
  FROM patients a , lab_orders b ,customers c , order_details d , labtests e  
  where a.patient_no = b.patient_no 
  and b.custid = c.custid
  and b.order_id = d.order_id 
  and d.testid = e.testid
  and b.ORDER_ID=2000000272
  
  group by   b.order_id , d.TOTAL_AMOUNT
Run Code Online (Sandbox Code Playgroud)

输出 :

Order Id    Test                                 Price       15% Vat        Total
2000000272  (TSH) Free T3 (FT3) Free T4 (FT4)   90 90 …
Run Code Online (Sandbox Code Playgroud)

sql sql-server string inner-join aggregate-functions

0
推荐指数
1
解决办法
41
查看次数