私はかなりの検索と手抜きをしており、解決策を見つけることはできません。たぶん私の状況はユニークです - あるいは、私はちょうど私がやっていることを知りません。私は私が始まった時よりずっと近くにいるので、それは盛り上がりです。とにかく - ここに私たちはブントラストに行きます - どんな援助も大歓迎です。SQL Join/Pivot/Unpivot = Madness
私は(ここでは私のふりテーブルをですので、画像を投稿することはまだ十分ではない担当者ポイント)このように見える2つのルックアップテーブルを結合する必要があります。
Social Network Member [table]
member_id social_network_id connection_id_string
16972 1 www.linkedin.com/somename
16972 2 www.twitter.com/somename
16972 3 www.facebook.com/somename
180301 1 www.linkedin.com/anothername
Social Network [table]
social_network_id name calling_string
1 Linkedin www.linkedin.com
2 Twitter www.twitter.com
3 Facebook www.facebook.com
これは私が欲しいものです。私は、クロスが適用され、ピボットおよびアンピボットなど、多くのことを試してみた - しかし、私はこの結果を得るように見えるカント:
member_id linkedin facebook twitter
16972 www.linkedin.com/somename www.facebook.com/somename www.twitter.com/somename
私はそれで動作することができるでしょう、私はsocial_network_idのための使用を持っていませんか、 join_stringを呼び出します。ここに私の質問があります。それは仕事をしていません。
SELECT member_id, [facebook],[linkedin],[myspace],[twitter]
FROM (
SELECT member_id,name,social_network_id,calling_string,connection_id_string
FROM social_network_member INNER JOIN
social_network ON social_network_member.social_network_id = social_network.social_network_id
CROSS APPLY (VALUES ('NAME',name),
('CONNECTION STRING', connection_id_string),
('CALLING STRING',calling_string))
Unpivoted(club_id,member_id)) as Sourcetable
Pivot (MAX(connection_id_string) For name in([facebook],[linkedin],[myspace],[twitter])) AS PVT
私が知ることができる最良のことは、実際には何もしていないことです。私は文法を推測しています。あなたが教えてくれますか?
これは私が(私は検索で見ていたものとは多少の典型的な)きてるものです:
member_id facebook linkedin myspace twitter
16972 NULL www.linkedin.com/somename NULL NULL
16972 www.facebook.com/somename NULL NULL NULL
...
...
は、私も可能欲しいものですか?どのようにそこに着くのか指針?私のクエリはすべてジャックアップされていますか?
ありがとうございます。レディースとゲント。
私はこの前に言いましたが、私はSQL Server 2012 - SSMSを使用しています。
解決済み私は以下のBluefeetから提供された回答を使用しましたが、それは魅力的でした。また、時間を割いてくれたチャーに感謝します。
だけ**これら3つの**ネットワークまたはクエリハンドルがすべきのためにあなたのSourceTableで不要な列が含まれていません。 **「ソーシャルネットワーク」の表にある限り、それらの数字はいくつでも** 3つだけの場合、3つの 'CASE WHEN'構造を取り除くことができます。 –
どのRDMSを使用していますか? –
クロス・アプライはMSSQLだけと思います。 @ apoji187 +1の素晴らしい最初の投稿は、よく記述されたテーブルを作成し、選択ステートメントを提供...非常に明白なあなた自身を解決しようとしました。将来は、作業中のデータベースをタグに追加して、使用しているSQLを知っていることを覚えておいてください。相互適用/クロス結合構文は、異なるデータベース間で非常にユニークです。 – Twelfth