結果を1つにまとめる

イラテベガー

これをクリーンアップしようとしていますが、インスタンスは10ではなく1つだけです。

この特定のエントリは、CASEステートメント内の個々のデータのそれぞれに関連付けられています(リストされている12個のうち10)。

誰かが何かアイデアを持っているかどうかを確認する(CTEに何度も参加する以外、つまり

LEFT JOIN sessions_CTE scte1 on scte1.person_id = p.person_id and 
scte1.session_id = '229856'
LEFT JOIN sessions_CTE scte2 on scte2.person_id = p.person_id and scte2.session_id = '229846'
LEFT JOIN sessions_CTE scte3 on scte3.person_id = p.person_id and scte3.session_id = '229798'...

それはうまく機能します、それはDB上で巨大で大ざっぱです)

これが私の質問です、皆さんが持っているかもしれないアイデアに感謝します:

WITH sessions_CTE AS
(
        select
            a.person_id,
            s.session_id,
            s.abbreviation,
            s.title,
            st.sessionTime_id,
            d.abbreviation as day,
            sl.minutes length,
            r.name room
          from
            attendeesregistered a
            inner join sessiontimes st on a.sessiontime_id = 
st.sessiontime_id
            inner join sessions s on st.session_id = s.session_id
            inner join slots on st.slot_id = slots.slot_id
            inner join days d on slots.day_id = d.day_id
            inner join rooms r on slots.room_id = r.room_id
            inner join slottimes on slots.slottime = 
slottimes.slottime_id
            inner join ses_length sl on slottimes.length = 
sl.ses_length_id
WHERE a.event = '23533'
--and ROWNUM <= 10
)

SELECT  DISTINCT p.person_id,
    p.email "Email",
    p.firstname "First Name",
    p.lastname "Last Name",
    p.jobTitle "Job Title",
    p.companyname "Company Name",
    CASE
        WHEN scte.session_id = '229744' THEN 'Registered'
       -- ELSE ''
    END as ExecutiveChannelPartnerMeeting,
    CASE
        WHEN scte.session_id = '229753' THEN 'Registered'
        ELSE ''
    END as ChickenParm,
    CASE
        WHEN scte.session_id = '229761' THEN 'Registered'
        ELSE ''
    END as Pesto,
    CASE
        WHEN scte.session_id = '229764' THEN 'Registered'
        ELSE ''
    END as mcyds,
    CASE
        WHEN scte.session_id = '229770' THEN 'Registered'
        ELSE ''
    END as bigmac,
    CASE
        WHEN scte.session_id = '229840' THEN 'Registered'
        ELSE ''
    END as mtndew,
    CASE
        WHEN scte.session_id = '229841' THEN 'Registered'
        ELSE ''
    END as sprite,
    CASE
        WHEN scte.session_id = '229852' THEN 'Registered'
        ELSE ''
    END as corndogs,
    CASE
        WHEN scte.session_id = '229853' THEN 'Registered'
        ELSE ''
    END as burritto,
    CASE
        WHEN scte.session_id = '229856' THEN 'Registered'
        ELSE ''
    END as mickeymouse,
    CASE
        WHEN scte.session_id = '229842' THEN 'Registered'
        ELSE ''
    END as mario,
    CASE
        WHEN scte.session_id = '229847' THEN 'Registered'
        ELSE ''
    END as link
    --scte.session_id,
    --scte.title
FROM people p
RIGHT JOIN sessions_CTE scte on scte.person_id = p.person_id
WHERE p.event = '23533'
AND p.person_id = 2388207
--AND ROWNUM <= 25
--GROUP BY p.person_id

現在の出力:

ID         |  Exec.   |Chicken Parm |  Pesto    | ......
----------- ---------- ------------- ----------- ------------
2388207    | Registered| (NULL)     | (NULL)    | ........
----------- ----------- ------------ ----------- ------------
2388207    | (NULL)    |  (NULL)    | Reistered | ........
----------- ----------- ------------ ----------- ------------
2388207    | (NULL)    |  Registered|  (NULL)   | ........
----------- ----------- ------------ ----------- ------------

必要な出力

ID         |  Exec.    |Chicken Parm |  Pesto    | ......
--------------------------------------------------------------
2388207    |Registered | Registered  | Registered| ........
----------- ----------- ------------ ----------- ------------
LukStorms

グループ化して、CASEWHENにMAXを使用できます。

WITH sessions_CTE AS
(
...
)
SELECT
p.person_id,
p.email AS "Email",
p.firstname AS "First Name",
p.lastname AS "Last Name",
p.jobTitle AS "Job Title",
p.companyname AS "Company Name",
MAX(CASE WHEN session_id = '229744' THEN 'Registered' END) AS "ExecutiveChannelPartnerMeeting",
MAX(CASE WHEN session_id = '229753' THEN 'Registered' END) AS "ChickenParm",
MAX(CASE WHEN session_id = '229761' THEN 'Registered' END) AS "Pesto",
MAX(CASE WHEN session_id = '229764' THEN 'Registered' END) AS "mcyds",
MAX(CASE WHEN session_id = '229770' THEN 'Registered' END) AS "bigmac",
MAX(CASE WHEN session_id = '229840' THEN 'Registered' END) AS "mtndew",
MAX(CASE WHEN session_id = '229841' THEN 'Registered' END) AS "sprite",
MAX(CASE WHEN session_id = '229852' THEN 'Registered' END) AS "corndogs",
MAX(CASE WHEN session_id = '229853' THEN 'Registered' END) AS "burritto",
MAX(CASE WHEN session_id = '229856' THEN 'Registered' END) AS "mickeymouse",
MAX(CASE WHEN session_id = '229842' THEN 'Registered' END) AS "mario",
MAX(CASE WHEN session_id = '229847' THEN 'Registered' END) AS "link"
FROM people p
RIGHT JOIN sessions_CTE scte on scte.person_id = p.person_id
WHERE p.event = '23533'
  AND p.person_id = 2388207
GROUP BY p.person_id, p.email, p.firstname, p.lastname, p.jobTitle, p.companyname;

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

2つのmutablelivedataの結果を1つにまとめる方法

分類Dev

クエリ固有の結果を1行にまとめる

分類Dev

LINQ 2つのリストを比較し、結果を1つのリストにまとめる

分類Dev

複数のページをスクレイプして結果を1つのCSVにまとめる

分類Dev

すべての結果を1つのメールにまとめてメールを送信する

分類Dev

2 つのテーブルを結合して複数の結果を 1 つのテーブルにまとめる

分類Dev

2つの並列タスクの結果を1つのリストにまとめます

分類Dev

1つの結果を他の複数の結果と結合するためのデータブロック

分類Dev

検索入力と結果を1つの入力と1つの結果にマージします

分類Dev

ChatIDごとに1つの結果を返します

分類Dev

C#バイナリまたはアイテムを1つのビットマスク結果にまとめて一覧表示する

分類Dev

多くのクエリの結果を1つのテーブルにまとめるにはどうすればよいですか?

分類Dev

Elasticsearchの重複する値を1つにまとめて、別のフィルターで結果を確認したい

分類Dev

Powershellの出力結果を表にまとめる

分類Dev

RxJS:3つの約束をまとめ、結果を区別する

分類Dev

SQL結果を「in」を使用して検索されたpkeyごとに1つの結果に制限します

分類Dev

2つの結果を1つの行に結合します

分類Dev

1つの結果と間違った結果のみを表示するカウントを選択します

分類Dev

grepに文字列を追加すると、1つのコマンドで複数の結果が得られます

分類Dev

結果として生じる複数の無効な文字を1つの下線に変換しますか?

分類Dev

SQLクエリ-1つの結果行に結合結果を表示します

分類Dev

SQLクエリ-IDごとに1つの結果を返します

分類Dev

MSSQLSELECT-グループごとに1つの結果を取得します

分類Dev

重複する1つの結果を印刷しようとしました

分類Dev

SparkSQL-結合後に1つの結果を保持します

分類Dev

MySQL-IDごとに1つの結果を制限する方法は?

分類Dev

PHPでページごとに1つの結果を表示する方法

分類Dev

SQLで複数の結果行を1つに結合する

分類Dev

2つのListViewを1つにまとめる

Related 関連記事

  1. 1

    2つのmutablelivedataの結果を1つにまとめる方法

  2. 2

    クエリ固有の結果を1行にまとめる

  3. 3

    LINQ 2つのリストを比較し、結果を1つのリストにまとめる

  4. 4

    複数のページをスクレイプして結果を1つのCSVにまとめる

  5. 5

    すべての結果を1つのメールにまとめてメールを送信する

  6. 6

    2 つのテーブルを結合して複数の結果を 1 つのテーブルにまとめる

  7. 7

    2つの並列タスクの結果を1つのリストにまとめます

  8. 8

    1つの結果を他の複数の結果と結合するためのデータブロック

  9. 9

    検索入力と結果を1つの入力と1つの結果にマージします

  10. 10

    ChatIDごとに1つの結果を返します

  11. 11

    C#バイナリまたはアイテムを1つのビットマスク結果にまとめて一覧表示する

  12. 12

    多くのクエリの結果を1つのテーブルにまとめるにはどうすればよいですか?

  13. 13

    Elasticsearchの重複する値を1つにまとめて、別のフィルターで結果を確認したい

  14. 14

    Powershellの出力結果を表にまとめる

  15. 15

    RxJS:3つの約束をまとめ、結果を区別する

  16. 16

    SQL結果を「in」を使用して検索されたpkeyごとに1つの結果に制限します

  17. 17

    2つの結果を1つの行に結合します

  18. 18

    1つの結果と間違った結果のみを表示するカウントを選択します

  19. 19

    grepに文字列を追加すると、1つのコマンドで複数の結果が得られます

  20. 20

    結果として生じる複数の無効な文字を1つの下線に変換しますか?

  21. 21

    SQLクエリ-1つの結果行に結合結果を表示します

  22. 22

    SQLクエリ-IDごとに1つの結果を返します

  23. 23

    MSSQLSELECT-グループごとに1つの結果を取得します

  24. 24

    重複する1つの結果を印刷しようとしました

  25. 25

    SparkSQL-結合後に1つの結果を保持します

  26. 26

    MySQL-IDごとに1つの結果を制限する方法は?

  27. 27

    PHPでページごとに1つの結果を表示する方法

  28. 28

    SQLで複数の結果行を1つに結合する

  29. 29

    2つのListViewを1つにまとめる

ホットタグ

アーカイブ