2014-12-03 3 views
0

하단에있는 대신 합계 값을 오른쪽으로 이동하려고합니다. 이것의모든 항목의 부분합 만 가져옵니다.

SELECT 

if(product is NULL, 'Total', product) as Product, 

total_items as Total, 
SUM(total_items) as Subtotal 
FROM items 

WHERE inv = "ABC" 


GROUP BY product 
WITH ROLLUP 

출력은 다음과 같습니다 :이처럼 그것을 할 수있는 방법이

| Product  | Total | Subtotal | 
| AB   | 260  | 260   | 
| DE   | 66  | 66   | 
| Total  | 66  | 326   | 

있습니까

현재,이 쿼리가?

| Product  | Total | Subtotal | 
| AB   | 260  |    | 
| DE   | 66  |    | 
|    |   | 326   | 
+0

이유는 MySQL의 – Sergey

+0

그래 외부에서하지 ​​: 나는이

SELECT product, total_items as Total, null as Total FROM items WHERE inv = "ABC" GROUP BY product UNION ALL SELECT null, null, Subtotal FROM ( SELECT if(product is NULL, 'Subtotal', product) as Product, SUM(total_items) as Subtotal FROM items WHERE inv = "ABC" GROUP BY product WITH ROLLUP ) T WHERE product = "Subtotal" 

출력처럼했다 – Strawberry

답변

0

좋아, 내가 그것을 알아 낸 모든 조합을 제안 해 주셔서 감사합니다. 정말 롤업의 팬이 아니에요 -

| Product  | Total | Subtotal | 
| AB   | 260  |    | 
| DE   | 66  |    | 
|    |   | 326   | 

:

0
SELECT product, 
     total_items, 
     null as Subtotal 
FROM items 
WHERE inv = "ABC" 
union all 
select null, null, SUM(total_items) from items