Yazar |
|
extreme
Kahramanmaras
admin
Kayıt: 24.10.2006 |
|
Başlığa ne yazmam gerektiğini kestiremediğim için böyle saçma bi başlık açtım
Benim kişilerime ait telefon, adres ve e-mailleri tutan 3 tablom var. 1-n olarak tanımlılar.
Ben bir rapor içerisinde kişiadı , telefon , adres , e-mail göstermek istiyorum. Bunun için bir view oluşturacağım.
Mesela benim 4 telefonum , 1 adresim , 3 emailim olsun
Burak - tel1 - adres1 - mail1
Burak - tel1 - null - mail1
Burak - tel1 - null - mail1
Burak - tel1 - null - null
Böyle görünsün istiyorum. Bunu nasıl yapabilirim? Yada böyle saçma bişey yerine tek bir raporda nasıl tüm verileri gösterebilirim
The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com
|
|
Yazar |
|
extreme
Kahramanmaras
admin
Kayıt: 24.10.2006 |
|
Veritabanından bağımsız olarak olması tercihimdir
The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com
|
|
Yazar |
|
iemre
Anadolu
Kayıt: 26.05.2007 |
|
select * from tablo_1 where ...
UNION
select * from tablo_2 where ...
UNİON
select * from tablo_3 where ...
bu şekilde selectlerdeki kolon sayısı eşit olacak şekilde union ile verileri başka başka tablolardan çekerek aynı tabloya atabilirsin.
More than one
|
|
Yazar |
|
fealin
Kayıt: 30.01.2006 |
|
iemre yazdi | select * from tablo_1 where ...
UNION
select * from tablo_2 where ...
UNİON
select * from tablo_3 where ...
bu şekilde selectlerdeki kolon sayısı eşit olacak şekilde union ile verileri başka başka tablolardan çekerek aynı tabloya atabilirsin. |
eğer bir tablonda olan bir kolon başka tabloda yoksa o da şu şekildeydi sanırım mesela A ve B tablon olsun A tablonda c d e kolonları olsun B tablonda sadece d ve e kolonları olsun
Select c,d,e from A
union all
Select null,d,e from B
yanlış hatırlamıyorsam t-sqlde böyleydi sorgusu.
there is no emotion; there is peace
there is no ignorance; there is knowledge
there is no passion; there is serenity
there is no chaos; there is harmony
there is no death: there is the force
|
|
Yazar |
|
extreme
Kahramanmaras
admin
Kayıt: 24.10.2006 |
|
Ben farklı tablolardaki verileri ortal columnlarda değil rowlarda göstermek istiyorum. union bu konuda işime yaramıyor.
Örnek olarak:
TEL_Tablo - tablolda 2 telefonum olsun
burak - 1212
burak - 1232
EMAIK_Tablo - tabloda 5 emailim olsun
burak - burak@burak
burak - burak1@burak
burak - burak2@burak
burak - burak3@burak
burak - burak4@burak
Ben şimdi öyle bir sorgu istiyorumki sonucu şöyle olsun
burak - 1212 - burak@burak
burak - 1232 - burak1@burak
burak - null - burak2@burak
burak - null - burak3@burak
burak - null - burak4@burak
Union ile şöyle olur bunu istemiyorum
burak - burak@burak
burak - burak1@burak
burak - burak2@burak
burak - burak3@burak
burak - burak4@burak
burak - 1212
burak - 1232
The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com
|
|
Yazar |
|
iemre
Anadolu
Kayıt: 26.05.2007 |
|
extreme yazdi | Ben farklı tablolardaki verileri ortal columnlarda değil rowlarda göstermek istiyorum. union bu konuda işime yaramıyor.
Örnek olarak:
TEL_Tablo - tablolda 2 telefonum olsun
burak - 1212
burak - 1232
EMAIK_Tablo - tabloda 5 emailim olsun
burak - burak@burak
burak - burak1@burak
burak - burak2@burak
burak - burak3@burak
burak - burak4@burak
Ben şimdi öyle bir sorgu istiyorumki sonucu şöyle olsun
burak - 1212 - burak@burak
burak - 1232 - burak1@burak
burak - null - burak2@burak
burak - null - burak3@burak
burak - null - burak4@burak
Union ile şöyle olur bunu istemiyorum
burak - burak@burak
burak - burak1@burak
burak - burak2@burak
burak - burak3@burak
burak - burak4@burak
burak - 1212
burak - 1232
|
Hocam senin ilk mesajından ben alt alta istediğini zannettim.Eğer ki aynı rowda olmasını istiyorum kayıtlarımın diyorsan leftjoin kullanman gerekiyor.Şimdi buraya sorgu yazmıyorum ama araştırdığın zaman hemen birsürü bulacaksın.
More than one
|
|
Yazar |
|
mely
Kayıt: 12.05.2009 |
|
select T.ad, T.tel, M.mail from TEL_Teble T inner join EMAIL_Table M on T.Ad=M.Ad where T.Ad='burak'
bu sorgu işini görür gibime geliyor. Denemek lazım. Inner join yerine left join de kullanabilirsin.
|
|
Yazar |
|
orhan
istanbul
admin
Kayıt: 17.11.2005 |
|
pivot table kullanman gerekebilir
sql i dump et ver bakalım
N/A
|
|
Yazar |
|
extreme
Kahramanmaras
admin
Kayıt: 24.10.2006 |
|
@ iemre & @mely
join kullanırsam veriler çaprazlanıyor. 2 telefon 4 mail var ise 8 sonuç geliyor karşıma. Ben öyle olsun istemiyorum.
@orhan
Elimde test verisi yok gerçek veriyi verirsem yakarlar beni. Ben pivot tablo neymiş araştırayım.
Teşekkürler
The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com
|
|
Yazar |
|
hazakli
Istanbul
Kayıt: 19.01.2007 |
|
Eğer fonksiyon yazabileceğin bir veritabanı kullanıyorsan bu şekilde halledebilirsin.
"select name, get_email(id) email, get_adres(id) adres, get_tel(id) telefon from table_name" gibi.
|
|
Yazar |
|
extreme
Kahramanmaras
admin
Kayıt: 24.10.2006 |
|
Şimdide farklı bi sorguya ihtiyacım var.
Şimdi bir view'im var kişileri ve yıllara göre maaşlarını alıyorum
"Akişisi" - 2007 - 500
"Akişisi" - 2008 - 1000
"Akişisi" - 2009 - 1200
gibi olsun. Ben 4. bir sütunda artış oranlarını göstermek istiyorum
"Akişisi" - 2007 - 500 - 0
"Akişisi" - 2008 - 1000 - 100
"Akişisi" - 2009 - 1200 - 20
Gibi. Bunu nasıl yapabilirim?
The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com
|
|
Yazar |
|
extreme
Kahramanmaras
admin
Kayıt: 24.10.2006 |
|
Bide şöyle bi sorum olacak. Ben bir sorguda yılları alıyorum. Bu yılları sorgu içerisinde datetime'a nasıl çevirebilirim. Ama yıl 2009 ise 01.09.2009 yani eylülün ilk günü olmalı.
The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com
|
|
Yazar |
|
iemre
Anadolu
Kayıt: 26.05.2007 |
|
extreme yazdi | Bide şöyle bi sorum olacak. Ben bir sorguda yılları alıyorum. Bu yılları sorgu içerisinde datetime'a nasıl çevirebilirim. Ama yıl 2009 ise 01.09.2009 yani eylülün ilk günü olmalı. |
convert(varchar,getdate(),.....)
Burada .. ile belitttiğim kısımda çeşitli tarih formatları mevcut 102,106,108,112,120 gibi bunları bi araştırmalısın ilk önce.Ona göre istediğini yapabilirsin.
More than one
|
|
Yazar |
|
extreme
Kahramanmaras
admin
Kayıt: 24.10.2006 |
|
iemre yazdi | extreme yazdi | Bide şöyle bi sorum olacak. Ben bir sorguda yılları alıyorum. Bu yılları sorgu içerisinde datetime'a nasıl çevirebilirim. Ama yıl 2009 ise 01.09.2009 yani eylülün ilk günü olmalı. |
convert(varchar,getdate(),.....)
Burada .. ile belitttiğim kısımda çeşitli tarih formatları mevcut 102,106,108,112,120 gibi bunları bi araştırmalısın ilk önce.Ona göre istediğini yapabilirsin. |
Bu şekilde oldu teşekkür ederim
The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com
|
|
|
|
-
Del.icio.us
-
Digg
-
Facebook
-
Furl
-
Google
-
Blink
-
Simpy
-
Spurl
-
Y! MyWeb
|
|
| | | | | | | | | | |