【Tableauデータソース上のカスタムSQLで同一名称の項目があるとエラーになる件】
用意したテーブルは下記の3つ
●事象
tableau server上でデータソースの新規作成時に下記のSQL文をカスタムSQLに入力したところエラーとなった。
SQL文:
select * FROM TABLE_A
INNER JOIN W_KENGEN
ON TABLE_A ."会社コード" = W_KENGEN."KAISHA_CD"
INNER JOIN W_KENGEN_USER2
ON W_KENGEN."GROUP_ID" AS K = W_KENGEN_USER2."GROUP_ID" AS U
WHERE W_KENGEN_USER2."USER_ID" = 'userA'
エラー文:TableauException: Oracle データベース エラー 904: ORA-00904: "W_KENGEN_USER2"."GROUP_ID": 無効な識別子です。
●解決策
・カスタムSQLの抽出項目で同一名称の項目があると、Tableauの項目名が同一項目で被ってしまってエラーとなる。
・SELECT句を「*」ではなく、必要な項目のみ抽出して、複数テーブルで同一名称の項目がある場合は別名をつける。
select 売上金額,w.group_id2 AS wgrp_id, u.group_id2 AS ugrp_id FROM TABLE_A
INNER JOIN W_KENGEN w
ON TABLE_A."会社コード" = w."KAISHA_CD"
INNER JOIN W_KENGEN_USER2 u
ON w."GROUP_ID2" = u."GROUP_ID2"
WHERE u."USER_ID" = 'userA'
最後まで読んでいただきありがとうございました!
いいね!お願いいたします!