簡體   English   中英

如何為一個具有分組依據的表和一個人的不同類型的表創建multi sum()

[英]How create a multi sum() for one table with group by and different type for one person

我有一個復雜的mysql表,例如:

staff     type      value       date

  a       cash       10      2013-02-17
  b       efpos       5      2013-02-16
  c       voucher    20      2013-02-16
  a       cash       10      2013-02-16
  b       efpos       5      2013-02-16
  c       voucher    20      2013-02-15
  a       cash       10      2013-02-15
  b       efpos       5      2013-02-15
  c       voucher    20      2013-02-14

我如何獲得這樣的桌子?

staff     cash      efpos       voucher              total                 date
   a       sum       sum          sum      sum(cash, efpos, voucher)    2013-02-16
   b       sum       sum          sum      sum(cash, efpos, voucher)    2013-02-16
   c       sum       sum          sum      sum(cash, efpos, voucher)    2013-02-16

這意味着我想使用人員和日期分組的每種類型,以及這三種類型的總和來獲得總和

這應該工作。

SELECT staff,
SUM(CASE type WHEN 'cash' THEN value ELSE 0 END) as cash,
SUM(CASE type WHEN 'efpos' THEN value ELSE 0 END) as efpos,
SUM(CASE type WHEN 'voucher' THEN value ELSE 0 END) as voucher,
SUM(value) as total

FROM <TABLE_NAME>

GROUP BY staff

但是,使用聚合函數時無法獲取日期。 這樣做也沒有意義,因為您不是在日期上使用分組方式,而是在人員上使用分組方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM