SQL gruplama

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
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

SQL gruplama

Mesaj gönderen mege »

firebird 1.5 de

Kod: Tümünü seç

CREATE TABLE LANGUAGE (
    LANGUAGETEXTSKEYFIELD  INTEGER NOT NULL,
    LANGUAGEID             SMALLINT NOT NULL,
    CURRENTID              SMALLINT,
    SECTION                SMALLINT NOT NULL,
    TEXTNO                 INTEGER,
    TEXT                   VARCHAR(100) CHARACTER SET UNICODE_FSS
);
şeklinde bir tablom var..

Kod: Tümünü seç

SELECT LANGUAGEID FROM LANGUAGE GROUP BY LANGUAGEID
ile ekli dil kodlarını alıyorum, örneğin 1,10 ve 20 nolu dillere ait kayıtların olduğu bilgisi geliyor sonuçta.

Kod: Tümünü seç

SECTION  TEXTNO   TEXT(LANGUAGEID =1 için)  TEXT(LANGUAGEID =10 için)   TEXT(LANGUAGEID =100 için)
   0       0           deneme                     example                         abulumabulu                  
   0       1           deneme1                    example1                        abulumabulu2
şeklinde bi querye ihtiyacım var. ama bi türlü çıkartamadım.
nassı olabilr acep? :? :oops:
group by ile almaya çalışında languageid birden fazla değer aldığı için multiple row hatası verior haklı olarak :(
.-.-.-.-.-.-.-. ^_^
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Eğer sen böyle her LANGUAGEID için bir sütun istiyorsan önce onun kaç tane olduğunu bulman lazım. Bence önce onu bir sorgula ve bundan dönen sonuca göre her dil için bir sütun ekle, yani şöyle ki;

Kod: Tümünü seç

SELECT SECTION,TEXTNO
,(SELECT TEXT FROM LANGUAGE D2 WHERE LANGUAGEID=1 AND d2.SECTION=d1.SECTION and d2.TEXTNO=d1.TEXTNO)  -- BU SATIRIN AYNISINDAN KAÇ DİL VARSA ONLAR İÇİNDE DÖNGÜ İLE EKLEMEN LAZIM.
FROM LANGUAGE D1
GROUP BY SECTION,TEXTNO
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

teşekkürler naile bu şekilde olabilir biliyorumda işte SQL ile olsa daha güzel olurdu.neyse artık.ya zaten fazla abarttım galiba, neyse önemli değil o kadar.
yazıları giren altalta görsün yazıları. :)
.-.-.-.-.-.-.-. ^_^
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Mesaj gönderen hdayi »

Bu iş sql ile yapılamaz manasına geldi bu. Tam @fahrettin beylik bi durum. :)
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Bence de zor :wink:

fazla da gaz vermemek lazım :lol: :lol:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

ya yok valla vaktinizi harcamayın. teşekkürler. bi şekilde halledicem.
.-.-.-.-.-.-.-. ^_^
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

Stored Procedure'lerdeki Execute String olayı var ya, onu kullan derim.

Yani önce bir SQL String Oluştur ve bu string senin istediğin kolonları içerecek biçimde olsun, sonra oluşan bu SQL String'i Execute et. Stored procedure'den de sana istediğin kolon sayısı kadar bir Result Set Dönsün.

Anlatabildim mi?

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
onaydin

Mesaj gönderen onaydin »

for execute statement çalıştırdığnda döncek kolonlar sql in içindekilere göre otomatik olarak değilde into ile atanmış değerlere göre belli oluyor. into ile atama yaptığı değişkense fb için sp çalıştırılmadan evvel output ta belirtilmek durumunda. Sonuç olarak tek bir procedure le sayısını tahmin edemediği kadar kolon döndürme ihtimali bence yok.
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Ya icime bi gaz havası geldi.... Foruma baktm meger bu baslikmis sebebi :) ...
Saka bir yana Almanya'dayim forumdan uzak degilim tabi ama konsantrasyon isteyen konulara tam veremiyorum kendimi.... Ugrasmayin bi sekilde halledicem dedigin icin fazla kasmadım ama eger ugrasalım dersen gelince ugrasırız... Kafamı tam veremedigimden herhalde meseleyi tam olarak anlamadım ama dedigim gibi is cozulemiyorsa beraber ugrasırız inşallah.....
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Cevapla