select ile alınan değer aynı cümlede tekrar kullanılabilirmi

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
cangurc
Üye
Mesajlar: 4
Kayıt: 16 Eki 2005 06:36

select ile alınan değer aynı cümlede tekrar kullanılabilirmi

Mesaj gönderen cangurc »

Örneğin,

select sum(değer) as alias1,alias1*2 as alias2

mümkünmüdür. aynı cümleyi aşağıdaki gibi yazabileceğimi biliyorum:

select sum(değer) as alias1,sum(değer)*2 as alias2

amacım cümleyi kısaltmak ve daha hızlı olmasını sağlamak

böyle bir cümle mümkünmüdür ve hız kazandırırmı?
Kullanıcı avatarı
mucar
Kıdemli Üye
Mesajlar: 247
Kayıt: 17 May 2005 01:14

Mesaj gönderen mucar »

Yok o şekilde mümkün değil, çünkü alias1 alanı çalışma anından önce var olan bir alan değil, çalışma anında oluşturuluyor, bu yüzden alan bulunamadı gibi bir hata alırsınız. Hız konusuna gelince, mümkün olsaydı bile çok fazla etkilemezdi.
"Evine bakmaktan aciz olan; ilerici, üç kıtaya hükmeden ecdadın mı gerici?"
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

Merhabalar,
bahsettiğiniz şekilde kullanabilirsiniz. Bir sakınca yok. ama alias1 ve alias2 isimli fieldleri uygun tipleriyle kullandığınız Dataset in fieldsEditöründe fkData olarak tanımlamanız gerekir. Eğer DataSet in fieldlis tini designtime da oluşturmuyorsanız yani listeboşsa hiç bir şeye gerek yok. direk kullanaiblirsiniz.
iyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Delphi tarafında değil select in içinde soruluyor :wink: Benim de bildiğim kadar kullanılamaz :!:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

MErhaba ,
mesajı yanlış okumuşum , sabah dalgınlığı ben alttaki komutun uygulanıp uygulanmayacağının sorulduğunu sandım pardon, evet uygulayamazsınız yukarıdakini. :oops:
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Kullandığınız vt ye bağlı. ms sql server da böyle bir kullanım yok ama sysbase de var diye biliyorum.
cangurc
Üye
Mesajlar: 4
Kayıt: 16 Eki 2005 06:36

Teşekkür ederim, diğer bir soru performans açısından ..

Mesaj gönderen cangurc »

select sum(değer) as alias1,sum(değer)*2 as alias2,sum(değer)*3 as alias3 ...

şeklindeki bir sql de her seferinde ayrı ayrı bir sum işlemi yapıldığından yavaşlama olacaktır herhalde ...

önce bir view yaratıp onun üstünde tekrar işlem yapmak bana hız kazandırır diye düşünüyorum, bu doğru bir yöntem olur mu ...
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

View oluşturup kullanabilirsiniz, sorun olmaz.
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Evet naile hanım haklı....
Sybase de bu şekilde bir kullanım mümkün... Query optimizer önce hangi değerleri hesaplaması gerektiğini yakalayıp hesaplanan değerleri tabloda var olan bir alanmış gibi kullanma imkanı vermekte.....
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Cevapla