内部ピボットが合計とピボットと左結合を使用しているときに、ロールアップで使用すると異なる結果が得られるのはなぜですか?

ユーザー812​​4226

私は 3 つのテーブルを持っています。場所はhttp://rextester.com/PED43367 です。

ロールアップに失敗しました。誰かが私に道を教えてくれますか?

私が欲しい出力は次のとおりです。

ここに画像の説明を入力してください

結果は問題ありませんが、それではロールアップを作成できません 助けてくれてありがとう

P.サーモン

mysql の実行順序 ( MySQL クエリ/句の実行順序) とhttps://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html読み「ONLY_FULL_GROUP_BY の場合が無効になっている場合、標準 SQL の GROUP BY 使用に対する MySQL 拡張機能により、列が機能的に GROUP BY 列に依存していない場合でも、選択リスト、HAVING 条件、または ORDER BY リストが非集約列を参照できます。前のクエリ。この場合、サーバーは各グループから任意の値を自由に選択できるため、それらが同じでない限り、選択された値は不確定であり、おそらく望んでいるものではありません。」

簡単に言えば、from と join が最初に実行され、group by は危険であり、ロールアップは問題を追加します。

ピボットのためにグループを分離し、「適切に」グループを使用して結合を追加します

select m.codes,m.version,sum(m.headcount) headount,sum(m.reghrs) reghrs, sum(m.hrsbdgt) hrsbudget,
       sum(w.workhrs) workhours, sum(w.reghrs) wreghrs, 
        sum(d1) '02-04-2017',
        sum(d2) '09-04-2017',
        sum(d3) '16-04-2017',
        sum(d4) '23-04-2017',
        sum(d5) '30-04-2017',
        sum(p.hours) as Total,
        SUM(p.hours) - sum(m.HrsBdgt) RsltBdgt

from   mtarget m
left join
(
select CODEPivot,categoryPivot ,  

    SUM(IF(pivot.selesai = '2017-04-02',pivot.hours,0)) d1,
        SUM(IF(pivot.selesai = '2017-04-09',pivot.hours,0)) d2,
        SUM(IF(pivot.selesai = '2017-04-16',pivot.hours,0)) d3,
        SUM(IF(pivot.selesai = '2017-04-23',pivot.hours,0)) d4,
        SUM(IF(pivot.selesai = '2017-04-30',pivot.hours,0)) d5,
        sum(pivot.hours) hours
from pivot
group by CODEPivot,categoryPivot
) p on 
    m.codeS = p.CODEPivot 
    and m.version = p.categoryPivot
left join whweek w on
    w.Code = p.CODEPivot
    and w.version = p.CategoryPivot 
group by codes,version with rollup

+-------+---------+----------+--------+-----------+-----------+---------+------------+------------+------------+------------+------------+-------+----------+
| codes | version | headount | reghrs | hrsbudget | workhours | wreghrs | 02-04-2017 | 09-04-2017 | 16-04-2017 | 23-04-2017 | 30-04-2017 | Total | RsltBdgt |
+-------+---------+----------+--------+-----------+-----------+---------+------------+------------+------------+------------+------------+-------+----------+
| FII   | YAA     |        3 |    432 |        35 |       144 |     432 |         28 |         28 |         14 |         24 |         41 |   135 |      100 |
| FII   | NULL    |        3 |    432 |        35 |       144 |     432 |         28 |         28 |         14 |         24 |         41 |   135 |      100 |
| IDS   | YAA     |        3 |    432 |        35 |       144 |     432 |          8 |          0 |          0 |          0 |          0 |     8 |      -27 |
| IDS   | NULL    |        3 |    432 |        35 |       144 |     432 |          8 |          0 |          0 |          0 |          0 |     8 |      -27 |
| RRT   | BKK     |        1 |    144 |        12 |       144 |     144 |          8 |          3 |         16 |         15 |         32 |    74 |       62 |
| RRT   | WESEL   |        1 |    144 |        12 |       144 |     144 |          0 |         14 |          7 |          2 |          0 |    23 |       11 |
| RRT   | YAA     |        9 |   1296 |       104 |       144 |    1296 |         67 |         98 |        135 |        103 |        119 |   522 |      418 |
| RRT   | NULL    |       11 |   1584 |       128 |       432 |    1584 |         75 |        115 |        158 |        120 |        151 |   619 |      491 |
| NULL  | NULL    |       17 |   2448 |       198 |       720 |    2448 |        111 |        143 |        172 |        144 |        192 |   762 |      564 |
+-------+---------+----------+--------+-----------+-----------+---------+------------+------------+------------+------------+------------+-------+----------+
9 rows in set (0.00 sec)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ