Konuyu görüntüle
IUCODERS FORUM > Programlama > Veritabanları > Bir sql sorgu sorusu...
Yazar
fenerista


avatar
Istanbul
Kayıt: 27.11.2006
26.03.2011-08:09 #74084
ÇÖZÜLDÜ.


Arkadaşlar burada 2 tablo için resimdeki sonucu nasıl alabiliriz. Yani kişiler Kişi ID lerine göre sıralı olmalı ve ev adresleri her kişi için üstte olmalı. (ahmet için 1, mehmet için 4 ID li adres yani ev adresleri üstte olmalı)

where (Kisi.ev_adres = Adres.Adres_ID) or (Kisi.is_adres = Adres.Adres_ID)
order by Kisi.ID asc,Adres_ID asc

şeklinde bir şey denediğimizde ev adres ID si her zaman iş adres ID sinden küçük olmadığından, olmadı tabi :)

amacımız kişinin ev adresini, ev adresi; iş adresini de iş adresi değişenine atamak. satırda hangisinin ev adresi veya iş adresi olduğu belli olmadığından(sorgu sonucunda) ev adresinin mutlaka en üstte olması lazım.

Veritabanı bizim değil o yüzden değişiklik yapamayız.

ÇÖZÜLDÜ.

@yasatmak teşekkürler
Şu tarz bir şey
case Adres.adres_ID
when Kisi.ev_adres then 1
when Kisi.is_adres then 2
end
as adres_tipi
order by adres_tip asc





Oktay,
Thk you!





Yazar
yersah


avatar

Kayıt: 14.01.2008
26.03.2011-12:11 #74085
Sql'den pek anlamam fakat cevap veren olmayınca birşeyler yazma ihtiyacı hissettim.

where (Kisi.1Adres_ID = Adres.Adres_ID) or (Kisi.2Adres_ID = Adres.Adres_ID)
order by Kisi.ID DESC , Adres_ID DESC

Şeklinde bir dene.





Yazar
extreme


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
26.03.2011-12:11 #74086
ev yada iş olduğunu belirten bir değişken daha eklemelisin.





The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com





Yazar
fenerista


avatar
Istanbul
Kayıt: 27.11.2006
26.03.2011-13:11 #74087
yersah yazdi
 
Sql'den pek anlamam fakat cevap veren olmayınca birşeyler yazma ihtiyacı hissettim.

where (Kisi.1Adres_ID = Adres.Adres_ID) or (Kisi.2Adres_ID = Adres.Adres_ID)
order by Kisi.ID DESC , Adres_ID DESC

Şeklinde bir dene.


böyle yaptık asc şeklinde ama ev adresinin Id si herzaman iş adresinden küçük olmuyor.





Oktay,
Thk you!





Yazar
fenerista


avatar
Istanbul
Kayıt: 27.11.2006
26.03.2011-13:13 #74088
extreme yazdi
 
ev yada iş olduğunu belirten bir değişken daha eklemelisin.


bu olayı nasıl yapacaz burak veritabanında değişiklik yapamıyoruz, ve ben sql de yeniyim :








Oktay,
Thk you!





Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
26.03.2011-13:53 #74089
ev yada iş adresi olduğunu nasıl anlıyorsun?





N/A
Yazar
fenerista


avatar
Istanbul
Kayıt: 27.11.2006
26.03.2011-14:20 #74090
orhan yazdi
 
ev yada iş adresi olduğunu nasıl anlıyorsun?


resmi güncelledim karman çorman yazmışım :





Oktay,
Thk you!





Yazar
yasatmak


avatar

Kayıt: 14.02.2007
26.03.2011-14:23 #74091
sqlinde is ve ev ayrimi icin case veya decode gibi ifadelerle extra bir kolon turetip buna gore bir siralama yapabilirsin.

ornek
case when ev_adresi then 1 else 2 end
seklinde





Yazar
fenerista


avatar
Istanbul
Kayıt: 27.11.2006
26.03.2011-14:28 #74092
yasatmak yazdi
 
sqlinde is ve ev ayrimi icin case veya decode gibi ifadelerle extra bir kolon turetip buna gore bir siralama yapabilirsin.

ornek
case when ev_adresi then 1 else 2 end
seklinde


bu asıl veritabanını değiştiriyor mu öyleyse olmayacak :





Oktay,
Thk you!





Yazar
yasatmak


avatar

Kayıt: 14.02.2007
26.03.2011-14:31 #74093
fenerista yazdi
 
yasatmak yazdi
 
sqlinde is ve ev ayrimi icin case veya decode gibi ifadelerle extra bir kolon turetip buna gore bir siralama yapabilirsin.

ornek
case when ev_adresi then 1 else 2 end
seklinde


bu asıl veritabanını değiştiriyor mu öyleyse olmayacak :


veri tabanindaki tablolarina bir kolon eklemiyorsun.sadece sql ile cektigin ifadelerden queryne derived bir kolon olusturuyorsun.





Yazar
fenerista


avatar
Istanbul
Kayıt: 27.11.2006
26.03.2011-14:37 #74094
yasatmak yazdi
 
fenerista yazdi
 
yasatmak yazdi
 
sqlinde is ve ev ayrimi icin case veya decode gibi ifadelerle extra bir kolon turetip buna gore bir siralama yapabilirsin.

ornek
case when ev_adresi then 1 else 2 end
seklinde


bu asıl veritabanını değiştiriyor mu öyleyse olmayacak :


veri tabanindaki tablolarina bir kolon eklemiyorsun.sadece sql ile cektigin ifadelerden queryne derived bir kolon olusturuyorsun.


tam kodu yazarsan, bi deneriz, ama uygun olmadığını söylediler senin dediğinin ben anlamıyom :) şimdi bi deniyoruz bakalım ama yapamayabiliriz : sen yaz





Oktay,
Thk you!





Yazar
clairvoyant


avatar
Antalya
Kayıt: 05.05.2006
26.03.2011-14:41 #74095
MySQL'de şöyle bir ifade sonuçlardaki önceliği değiştiriyor ama senin kullandığın sistemde işe yarar mı bilmiyorum:

ORDER BY (Kisi.ev_adres != Adres.Adres_ID) ASC





Let`s make this world a better place to live !

Yazar
fenerista


avatar
Istanbul
Kayıt: 27.11.2006
26.03.2011-14:45 #74096
yasatmak yazdi
 
fenerista yazdi
 
yasatmak yazdi
 
sqlinde is ve ev ayrimi icin case veya decode gibi ifadelerle extra bir kolon turetip buna gore bir siralama yapabilirsin.

ornek
case when ev_adresi then 1 else 2 end
seklinde


bu asıl veritabanını değiştiriyor mu öyleyse olmayacak :


veri tabanindaki tablolarina bir kolon eklemiyorsun.sadece sql ile cektigin ifadelerden queryne derived bir kolon olusturuyorsun.


tamam usta oldu valla :)

biz başka tablolar için yapıyorduk ta yine ben kopyalamaya çalışayım

case Adres.adres_ID
when Kisi.ev_adres then 1
when Kisi.is_adres then 2
end
as adres_tipi
order by adres_tip asc

sanırım böyle birşey
tekrar teşekkürler





Oktay,
Thk you!





Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb