select içinde select

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

select içinde select

Mesaj gönderen ALUCARD »

arkadaşlar merhaba

şimdi benim şöyle bi sorunum var

müşterinin adi seçildiği zaman o müşteriye ait butun hareketleri bi gridde nasıl gosterebilirim.
bi mşterinin hem mesela faturanın başlık bilgileri ve satır bilgileri gozukecek

nasıl bir sorgu yazmalıyım

firebird ve d7 kullanıyorum..
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Kullanıcı avatarı
safak
Şafak EBESEK
Mesajlar: 165
Kayıt: 05 Ağu 2003 04:39
Konum: Istanbul
İletişim:

Mesaj gönderen safak »

Sizin bulunduğunuz ortamın bilgilerine sahip olmadam sorunuzu cevaplamak çok zor. Onlarca karşı sorarak çözüme yaklaşabiliriz. Biraz daha açık yazmanız sanırım tüm arkadaşlara faydalı olur.

1. Girid gerekiyor mu ?
Gerekmiyorsa hepsini bir raporlama aracıyla raporlayıp sayfayı ekranda gösterebilirsiniz.

2. Grid Gerekiyorsa:
Müşteriyi temsil eden anahtar alanı, ilgili diğer detay tablolarda sorgulatıp elde ettiğiniz sonuç setlerini uygun bir şekilde araya getirerek sonucu gride alabilirsiniz.

Eğer dosya yapıları çok farklı ise :
2.a ) bunları farklı girdlerde gösterebilirsiniz. birisinin üzerinde dolaşınca diğerleri de ona uyabilir.
2. b) Sonucun görünmesi gerekn biçim her ne ise onu temsil eden bir tablo hazılayıp, sorgularınızı sonuçlarını bu tabloya taşıyıp, varsa tablo üzerinde düzenleme işlemlerini yaptıktan sonra gride taşıyabilirsiniz.

Genel bir öneri aktarmak istiyorum:
Programların tasarımına en sondan da başlayarak bakmayı ihmal etmeniyiniz. Yani sonuçta hangi raporlar çıkacaksa onları sağlayacak şekilde database yapısını hazırlarsanız, zaten kavramsal bir sorununuz oluşmaz. Teknik sorunlar ise kolaylıkla aşılabilir.

Kolay Gelsin,
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Mesaj gönderen ALUCARD »

satır bilgileri

Kod: Tümünü seç

CREATE TABLE FATURASATIR (
    ID           INTEGER NOT NULL,
    FIRMA_NO     INTEGER NOT NULL,
    FATURA_ID    INTEGER NOT NULL,
    FATURANO     VARCHAR(50) NOT NULL COLLATE PXW_TURK,
    STOK_ID      INTEGER NOT NULL,
    STOKADI      VARCHAR(50) NOT NULL COLLATE PXW_TURK,
    MIKTAR       SAYI /* INTEGER  */ NOT NULL,
    BIRIM        KARAKTER /* VARCHAR(50)  */,
    BIRIMFIYAT   PARABIRIMI /* DOUBLE PRECISION  */,
    KDV          YUZDELIK_ORANLAR /* INTEGER  */,
    KDVTUTARI    PARABIRIMI /* DOUBLE PRECISION  */,
    TUTAR        PARABIRIMI /* DOUBLE PRECISION  */,
    ACIKLAMA     VARCHAR(250) DEFAULT 1 COLLATE PXW_TURK,
    KDVOK        "BOOLEAN ALAN" /* CHAR(1)  DEFAULT 'F' */,
    KONTROL      "BOOLEAN ALAN" /* CHAR(1)  DEFAULT 'F' */,
    ISKONTO      PARABIRIMI /* DOUBLE PRECISION  */,
    ISKONTOORAN  YUZDELIK_ORANLAR /* INTEGER  */
);

baaslık

Kod: Tümünü seç

CREATE TABLE FATURABASLIK (
    ID            INTEGER NOT NULL,
    FIRMA_NO      SAYI /* INTEGER  */ NOT NULL,
    FATURANO      KARAKTER /* VARCHAR(50)  */ NOT NULL COLLATE PXW_TURK,
    KASIYER       KARAKTER /* VARCHAR(50)  */ COLLATE PXW_TURK,
    TARIH         TARIH_ALANLAR /* DATE */ NOT NULL,
    SAAT          SAAT_ALANLAR /* TIME */,
    CH_ID         INTEGER,
    CH_KOD        KARAKTER /* VARCHAR(50)  */ COLLATE PXW_TURK,
    CH_AD         KARAKTER /* VARCHAR(50)  */ COLLATE PXW_TURK,
    CH_UNVAN      KARAKTER /* VARCHAR(50)  */ COLLATE PXW_TURK,
    CD_ADRES      VARCHAR(255) COLLATE PXW_TURK,
    INDIRIM       PARABIRIMI /* DOUBLE PRECISION  */,
    TOPLAM        PARABIRIMI /* DOUBLE PRECISION  */,
    TOPLAMKDV     PARABIRIMI /* DOUBLE PRECISION  */,
    GENELTOPLAM   PARABIRIMI /* DOUBLE PRECISION  */,
    ARATOPLAM     PARABIRIMI /* DOUBLE PRECISION  */,
    ODEME         KARAKTER /* VARCHAR(50)  */ DEFAULT 'Yapıldı' COLLATE PXW_TURK,
    KDV           KISA_YAZI /* VARCHAR(15)  */ DEFAULT 'Dahil' COLLATE PXW_TURK,
    KDVORANI      YUZDELIK_ORANLAR /* INTEGER  */,
    ODEMETARIHI   TARIH_ALANLAR /* DATE */,
    SEVKTARIHI    TARIH_ALANLAR /* DATE */,
    SATISELEMANI  KARAKTER /* VARCHAR(50)  */ COLLATE PXW_TURK,
    KUR_USD       PARABIRIMI /* DOUBLE PRECISION  */,
    KUR_EURO      PARABIRIMI /* DOUBLE PRECISION  */,
    USD           PARABIRIMI /* DOUBLE PRECISION  */,
    EURO          PARABIRIMI /* DOUBLE PRECISION  */
);
buda baslık ddl si birbirlerine

Kod: Tümünü seç

baslik. ID -> satir.fatura_id 
şeklinde bağlılar

ben genelde DOMAIN kullandım.
bunun gibi 3 - 4 tane daha tablo var

buna gore bir sql cumlesi cıkarmam lazım

veriler gridde de gosterilmeli zaten gridde gordukten sonra rapora atması zor olmasa gerek.
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Siz bunu Raporlama içinmi kullanacaksınız?

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Mesaj gönderen ALUCARD »

hem raporlama için hemde gridde gorebilmek için
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2380
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

baslik. ID -> satir.fatura_id
zaten yazmışsın neden soruyorsun anlamadım :)

Kod: Tümünü seç

select * from FATURASATIR
where FATURASATIR.FATURA_ID = :Baslik_id
formun üzerine bir dbedit koy bunu FATURABASLIK.ID (sanırım prKey değilse olana) bağla bu editin onchange inde yukarıdaki query nin "Baslik_id" parametresine FATURABASLIK.ID değerini gönderip query i aç

Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
ASE
Kıdemli Üye
Mesajlar: 518
Kayıt: 28 Ağu 2003 03:17
Konum: samsun
İletişim:

Mesaj gönderen ASE »

burda arkadaş sadece birtabloyu yazmış bunun gidi 5-6 tablo daha var
yanı bu satıs faturası
daha alış faturası ,
sipariş, sair giriş - çikiş cek,senet,tahsil-tediye gibi

bunların hepsinin bi gridde toplanması lazım
diye biliyorum
Allah'ım!...
Yol boyunca bırakma elimi...
Düşerim sonra...


ASE YAZILIM
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Bu kayıtları harici bir tabloda toplayıp işlem yapsa daha kolay olur ben bu şekilde yapıyorum mesala Alış Fatu. veya Satış Fatu eklediğim zaman Hareket tablosunada yapılan işlemi ekliyorum değiştirme işlemlerinde silme işlemlerindede Hareket tablosunu yapılan işlemleri güncelliyorum Tek bir tablodon istediğim gibi grid e ve Quick Rep ten çok rahat döküm alabiliyorum.

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Mesaj gönderen ALUCARD »

kayıtları eklerken kodla alanları eşitleyerek mni yoksa başka nasıl bir eşitleme kullandınız...
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Belirli özelliklerini baz alarak raporlama için gerekli olabilecek bilgiler mesala Cari Kodu Fiş Türü Meblağ tutarları Fiş Numarası vb... Update lerdede Fiş Numarası FişTürü Cari Kod kısmı ile ulaşıp gerekli güncellemeleri yaparım vb...

Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Cevapla