Çok fazla arama yaptım ve işe yaramazdım ve bir çözüm bulamıyorum. Belki de durumum eşsizdir - ya da büyük olasılıkla ne yaptığımı bilmiyorum. Başladığımdan çok daha yakınım, bu da canlandırıcı. Her neyse - biz burada braintrust gidiyoruz - herhangi bir yardım çok takdir edilmektedir.SQL Katıl/Pivot/Unpivot = Delilik
I (burada benim hayali tablolar yüzden resimleri yayınlamak için henüz yeterli değildir temsilcisi noktaları) şuna benzer 2 arama tabloları katılması gerekir:
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
Bu benim istediğim şey. Ben pivotlar ve unpivots, haç da dahil şeylerin bir dizi denedik uygulamak ettik - ama bu sonucu elde edebilirim gibi görünüyor:
member_id linkedin facebook twitter
16972 www.linkedin.com/somename www.facebook.com/somename www.twitter.com/somename
Bunun çalışmak mümkün olacak, ben social_network_id ihtiyacımız yok ya katılmadan sonra call_string. İşte benim işim oldukça işini yapmıyor.
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
anlarım iyi çapraz gerçekten bir şey yapmıyor geçerlidir olduğunu. Oradaki sözdizimini tahmin ettim .. anlatabilir misin?
Bu (Ben aramalarda görüştüğüm kadarıyla biraz tipik) alıyorum budur:
member_id facebook linkedin myspace twitter
16972 NULL www.linkedin.com/somename NULL NULL
16972 www.facebook.com/somename NULL NULL NULL
...
...
Hatta mümkün istediğin? Oraya nasıl gidilir? Sorgum tamamlandı mı?
Şimdiden teşekkürler Ladies and Gents.
Daha önce bahsetmeyi unuttum, ancak SQL Server 2012 - SSMS kullanıyorum.
ÇÖZÜM Aşağıdaki Bluefeet tarafından sağlanan yanıtı kullandım ve bir cazibe gibi çalıştı. Ayrıca yardım için zaman ayırdığınız için Cha sayesinde.
Hemen ** Bu üç ** ağlar veya sorgu kolu gerektiği bu kadar basit sorgu yapacak ** Sosyal Ağ 'tablosunda oldukları sürece herhangi bir sayı **? Eğer sadece üç ise, üç 'CASE WHEN' yapısını kurtarabilmelisiniz. –
Hangi RDMS'yi kullanıyorsunuz? –
Çapraz Uygulamanın sadece MSSQL olduğunu düşünüyorum. @ apoji187 +1 büyük ilk yazı için, tablo ile iyi tanımlanmış ve verilen ifadeyi kullanarak ... kendiniz çözmeye çalıştığınız çok açık. Gelecekte, çalışmakta olduğunuz veritabanını etiketlere eklemeyi unutmayın, böylece insanlar hangi sql kullandığınızı bilirler ... çapraz başvuru/çapraz katıl sözdizimi farklı veritabanlarında benzersizdir. – Twelfth