Gruplandırmada sayma işlemi yapmıyor...
Gruplandırmada sayma işlemi yapmıyor...
MDRLK........... MRK ..........ATIP
-------------------------------------------------
Alm............. ..Alk.............. D4
Alm................slk...............D4
Alm................slk...............D4
Alm................slk...............D5
............................................
..........................................
................................................
...........................................
Glc.................hrm............D4
Glc.................mhy............D3
Glc.................mhy............D3
.................................... ...
................................................
Bu şekilde verilerimin bulunduğu tablom(Dbase) var..
Bu tablodaki MDRLK ve MRK göre ATIP sayılarını görmek istiyorum...
MDRLK.......... MRK.......... D3.............. D4............. D5
----------------------------------------------------------------------
Alm............... slk............ 0..................2.................1
..... ........................................................................
....................................................................................
gibi... ve şu sql i yazıyorum...
Select T.Mdrlk,T.mrk,
(Select count(*) from tablo as T1 where T1.atip='D3' and T1.mrk=T.mrk) as D3,
(Select count(*) from tablo as T1 where T1.atip='D4' and T1.mrk=T.mrk) as D4,
(Select count(*) from tablo as T1 where T1.atip='D5' and T1.mrk=T.mrk) as D5
from tablo as T
group by T.mdrlk,T.mrk
kod mantıklı geliyor fakat atip değerlerini saymıyor..sıfır değeri veriyor..
MDRLK.......... MRK.......... D3.............. D4............. D5
----------------------------------------------------------------------
Alm............... slk............ 0..................0.................0
..... ................................0..................0.................0...
.......................................0..................0.................0..........
nerde hata yapıyorum acaba? veya dbase den mi kaynaklanıyor?
-------------------------------------------------
Alm............. ..Alk.............. D4
Alm................slk...............D4
Alm................slk...............D4
Alm................slk...............D5
............................................
..........................................
................................................
...........................................
Glc.................hrm............D4
Glc.................mhy............D3
Glc.................mhy............D3
.................................... ...
................................................
Bu şekilde verilerimin bulunduğu tablom(Dbase) var..
Bu tablodaki MDRLK ve MRK göre ATIP sayılarını görmek istiyorum...
MDRLK.......... MRK.......... D3.............. D4............. D5
----------------------------------------------------------------------
Alm............... slk............ 0..................2.................1
..... ........................................................................
....................................................................................
gibi... ve şu sql i yazıyorum...
Select T.Mdrlk,T.mrk,
(Select count(*) from tablo as T1 where T1.atip='D3' and T1.mrk=T.mrk) as D3,
(Select count(*) from tablo as T1 where T1.atip='D4' and T1.mrk=T.mrk) as D4,
(Select count(*) from tablo as T1 where T1.atip='D5' and T1.mrk=T.mrk) as D5
from tablo as T
group by T.mdrlk,T.mrk
kod mantıklı geliyor fakat atip değerlerini saymıyor..sıfır değeri veriyor..
MDRLK.......... MRK.......... D3.............. D4............. D5
----------------------------------------------------------------------
Alm............... slk............ 0..................0.................0
..... ................................0..................0.................0...
.......................................0..................0.................0..........
nerde hata yapıyorum acaba? veya dbase den mi kaynaklanıyor?
Selamlar,
Group by'ı kaldırın, çünkü grup kullanmıyorsunuz SUBQUERY kurmuşsunuz.
Bir de öyle deneyin
Kolay Gelsin
Group by'ı kaldırın, çünkü grup kullanmıyorsunuz SUBQUERY kurmuşsunuz.
Bir de öyle deneyin
Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Merkezlere makina(D3,D4 v.b) girişler birden fazla olduğu için group by kullanmayınca aynı merkez alt alta giriş sayısı kadar sıralanıyor fakat makina sayı alanları yine sıfır(0)..Kuri_TLJ yazdı:Selamlar,
Group by'ı kaldırın, çünkü grup kullanmıyorsunuz SUBQUERY kurmuşsunuz.
Bir de öyle deneyin
Kolay Gelsin
kolay gelsin
Selamlar,
Eksik anlatmışım
Pardon.
Müdürlüklerin tanımlı olduğu tabloyu esas alacaksınız.
Yani
Şeklinde olduğunu düşünelim
gibi kullanırsanız işinizi görecektir veya hareket table'ına distinct query çekerseniz işiniz görülecektir, ancak distinct query yavaşlatır.
Kolay Gelsin
Eksik anlatmışım

Müdürlüklerin tanımlı olduğu tabloyu esas alacaksınız.
Yani
Kod: Tümünü seç
TANIMLAR
KOD AD
001 ADNAN
002 DİLEK
003 DİLAN
004 DERYA
HAREKETLER
KOD MIKTAR
001 50
001 10
002 40
002 60
003 20
003 70
004 40
004 50
Kod: Tümünü seç
SELECT A.KOD, A.ADI
(SELECT B.MIKTAR FROM HAREKETLER B WHERE A.KOD = B.KOD) TOPLAM
FROM TANIMLAR
Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
MDRLK-----MRK--------ATIP
ALEMDAR SANAYI D4(DZ)
ALEMDAR SANAYI D5
ALEMDAR SANAYI D4(TM)
ALEMDAR SANAYI D4(TM)
ALEMDAR SANAYI D4(DZ)
ALEMDAR SANAYI D4(DZ)
ALEMDAR SANAYI D5
ALEMDAR SANAYI D5
ALEMDAR SANAYI D4(TM)
ALEMDAR SANAYI D4(TMKR)
ALEMDAR SANAYI D5
ALEMDAR SANAYI D5
ALEMDAR SANAYI D5
ALEMDAR SANAYI D5
ALEMDAR SANAYI D4(DZ)
ALEMDAR SANAYI D4(TM)
ALEMDAR SANAYI D4(DZ)
ALEMDAR KOSEKOY D4(DZ)
ALEMDAR KOSEKOY D5
ALEMDAR KOSEKOY D4(DZ)
ALEMDAR KOSEKOY D5
ALEMDAR KOSEKOY D5
ALEMDAR KOSEKOY D5
ALEMDAR KOSEKOY D4(DZ)
ALEMDAR KOSEKOY D5
......................................
.................
................
GEBZE DARICA D4(TM)
GEBZE DARICA D5
GEBZE DARICA D5
GEBZE DARICA D4(TM)
GEBZE DARICA D5
GEBZE DARICA D4(TM)
GEBZE DARICA D4(TM)
GEBZE DARICA D5
GEBZE DARICA D5
GEBZE DARICA D5
GEBZE DARICA D4(KK)
GEBZE DARICA D5
GEBZE DENIZLI D5
GEBZE DILOVASI D4(KK)
GEBZE DILOVASI D4(TM)
GEBZE DILOVASI D5
.......................
.....................
GOLCUK GOLCUK D5
GOLCUK GOLCUK D4(KK)
GOLCUK GOLCUK D4(TM)
GOLCUK GOLCUK D5
GOLCUK GOLCUK D4(TM)
GOLCUK HALIDERE D5
GOLCUK HALIDERE D4(TM)
GOLCUK HALIDERE D4(TM)
GOLCUK HALIDERE D4(TM)
GOLCUK HISAREYN D4(DZ)
GOLCUK HISAREYN D5
GOLCUK IHSANIYE D4(TM)
GOLCUK IHSANIYE D5
GOLCUK IHSANIYE D4(TM)
GOLCUK IHSANIYE D4(TM)
GOLCUK IHSANIYE D5
GOLCUK IHSANIYE D4(TM)
GOLCUK IHSANIYE D4(TM)
GOLCUK IHSANIYE D4(TM)
GOLCUK IHSANIYE D4(DZ)
GOLCUK IHSANIYE D4(TMKR)
GOLCUK IHSANIYE D5
Tablom yukarıdaki gibi ve ben bunu sql ile
MDRLK.......MRK.......D4(DZ).....D4(TM)......D4(TMKR).......D5
-----------------------------------------------------------------------
ALEMDAR... SANAYI.... 5........... 4............... 2................. 7
..........................................................................................
............................................................................................
.........................................................................................
gibi şekle sokmak istiyorum...
mdrlk ve mrk göre gruplandırıp şartta makina tipini ve mrkleri baz alıp saydırma yaptırdığımda sonuçlar sıfır dönüyor yani saymıyor....(vt.Dbase)
Kolay gelsin.
ALEMDAR SANAYI D4(DZ)
ALEMDAR SANAYI D5
ALEMDAR SANAYI D4(TM)
ALEMDAR SANAYI D4(TM)
ALEMDAR SANAYI D4(DZ)
ALEMDAR SANAYI D4(DZ)
ALEMDAR SANAYI D5
ALEMDAR SANAYI D5
ALEMDAR SANAYI D4(TM)
ALEMDAR SANAYI D4(TMKR)
ALEMDAR SANAYI D5
ALEMDAR SANAYI D5
ALEMDAR SANAYI D5
ALEMDAR SANAYI D5
ALEMDAR SANAYI D4(DZ)
ALEMDAR SANAYI D4(TM)
ALEMDAR SANAYI D4(DZ)
ALEMDAR KOSEKOY D4(DZ)
ALEMDAR KOSEKOY D5
ALEMDAR KOSEKOY D4(DZ)
ALEMDAR KOSEKOY D5
ALEMDAR KOSEKOY D5
ALEMDAR KOSEKOY D5
ALEMDAR KOSEKOY D4(DZ)
ALEMDAR KOSEKOY D5
......................................
.................
................
GEBZE DARICA D4(TM)
GEBZE DARICA D5
GEBZE DARICA D5
GEBZE DARICA D4(TM)
GEBZE DARICA D5
GEBZE DARICA D4(TM)
GEBZE DARICA D4(TM)
GEBZE DARICA D5
GEBZE DARICA D5
GEBZE DARICA D5
GEBZE DARICA D4(KK)
GEBZE DARICA D5
GEBZE DENIZLI D5
GEBZE DILOVASI D4(KK)
GEBZE DILOVASI D4(TM)
GEBZE DILOVASI D5
.......................
.....................
GOLCUK GOLCUK D5
GOLCUK GOLCUK D4(KK)
GOLCUK GOLCUK D4(TM)
GOLCUK GOLCUK D5
GOLCUK GOLCUK D4(TM)
GOLCUK HALIDERE D5
GOLCUK HALIDERE D4(TM)
GOLCUK HALIDERE D4(TM)
GOLCUK HALIDERE D4(TM)
GOLCUK HISAREYN D4(DZ)
GOLCUK HISAREYN D5
GOLCUK IHSANIYE D4(TM)
GOLCUK IHSANIYE D5
GOLCUK IHSANIYE D4(TM)
GOLCUK IHSANIYE D4(TM)
GOLCUK IHSANIYE D5
GOLCUK IHSANIYE D4(TM)
GOLCUK IHSANIYE D4(TM)
GOLCUK IHSANIYE D4(TM)
GOLCUK IHSANIYE D4(DZ)
GOLCUK IHSANIYE D4(TMKR)
GOLCUK IHSANIYE D5
Tablom yukarıdaki gibi ve ben bunu sql ile
MDRLK.......MRK.......D4(DZ).....D4(TM)......D4(TMKR).......D5
-----------------------------------------------------------------------
ALEMDAR... SANAYI.... 5........... 4............... 2................. 7
..........................................................................................
............................................................................................
.........................................................................................
gibi şekle sokmak istiyorum...
mdrlk ve mrk göre gruplandırıp şartta makina tipini ve mrkleri baz alıp saydırma yaptırdığımda sonuçlar sıfır dönüyor yani saymıyor....(vt.Dbase)
Kolay gelsin.
Kod: Tümünü seç
SELECT DISTINCT A.MDRLK, A.MRK,
(SELECT COUNT(*) FROM HAREKET Z WHERE Z.MDRKL = A.MDRLK AND Z.MRK = Z.MRK AND Z.ATIP = 'D5') D5_SAYISI,
(SELECT COUNT(*) FROM HAREKET Z WHERE Z.MDRKL = A.MDRLK AND Z.MRK = Z.MRK AND Z.ATIP = 'D4(DZ)') D4DZ_SAYISI,
(SELECT COUNT(*) FROM HAREKET Z WHERE Z.MDRKL = A.MDRLK AND Z.MRK = Z.MRK AND Z.ATIP = 'D4(TM)') D4TM_SAYISI
FROM HAREKET A
Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Z.MRK=Z.MRK ..(Z.MRK=A.MRK) olmalı sanırım...Kuri_TLJ yazdı:işinizi görmesi lazım. Ancak SUM edecekseniz, COUNT(*) yerine SUM etmek istediğiniz fieldı koyun.Kod: Tümünü seç
SELECT DISTINCT A.MDRLK, A.MRK, (SELECT COUNT(*) FROM HAREKET Z WHERE Z.MDRKL = A.MDRLK AND Z.MRK = Z.MRK AND Z.ATIP = 'D5') D5_SAYISI, (SELECT COUNT(*) FROM HAREKET Z WHERE Z.MDRKL = A.MDRLK AND Z.MRK = Z.MRK AND Z.ATIP = 'D4(DZ)') D4DZ_SAYISI, (SELECT COUNT(*) FROM HAREKET Z WHERE Z.MDRKL = A.MDRLK AND Z.MRK = Z.MRK AND Z.ATIP = 'D4(TM)') D4TM_SAYISI FROM HAREKET A
Kolay Gelsin
Yukarıdaki yazmış olduğunuz sorguyu dbase tabloma uyguladığımda yetersiz hafıza hatası alıyorum..
Verileri aşağıdaki şekilde azalttım..
SELECT DISTINCT A.MDRLK, A.MRK,
(SELECT COUNT(*) FROM ASTATIK Z WHERE Z.MDRLK = A.MDRLK AND Z.MRK = A.MRK AND Z.ATIP = 'D5') D5_SAYISI,
(SELECT COUNT(*) FROM ASTATIK Z WHERE Z.MDRLK = A.MDRLK AND Z.MRK = A.MRK AND Z.ATIP = 'D4(DZ)') D4DZ_SAYISI
FROM ASTATIK A
sonuç olarak makina sayılarını sıfır döndürdü...
v.t den mi kaynaklanıyor bilemiyorum..bunu başka bir SQL kodu ile yapabilirmiyiz...veya başka bir öneriniz var mı?
kolay gelsin...
Selamlar,
Düzeltmeniz doğru A.MDRLK olacaktı yazım hatası yapmışım.
Memory hatası almanız doğal zira DBase dosyalar kullanıyorsunuz
Eğer mümkünse bırakın Dbase'i paradoxu Access'i bence ivedilikle FB'ye veya muadili başka bir veri tabanına kaydırın yazılımlarınızı.
Zahmetli bir iş ama işinizi daha sonrasında rahatlatır.
Farklı öneriye gelince işinizi 1 adımdan daha fazla adım alarak yapın derim.
Yani bir başka table oluşturun, sonra distinct bir Query ile ASTATIK tablosundaki her bir MDRLK ve MRK için yeni oluşturduğunuz tabloya kayıtları atın.
Yani yeni tablo aslında sizin Sonuç elde etmek istediğiniz Query'nin bir kopyası niteliğinde (structure'ına sahip) bir tablo olmalı ve manuel olarak siz bir döngü ile her bir kombinasyon için basit Query'lerle sonuçları yeni tabloya ekleyin ve son olarak da o tabloyu selct eden bir Query yazın.
Başka bir DB kullansaydınız bu kadar zorlanmazdınız diye tahmin ediyorum.
Kolay Gelsin.
Düzeltmeniz doğru A.MDRLK olacaktı yazım hatası yapmışım.
Memory hatası almanız doğal zira DBase dosyalar kullanıyorsunuz

Zahmetli bir iş ama işinizi daha sonrasında rahatlatır.
Farklı öneriye gelince işinizi 1 adımdan daha fazla adım alarak yapın derim.
Yani bir başka table oluşturun, sonra distinct bir Query ile ASTATIK tablosundaki her bir MDRLK ve MRK için yeni oluşturduğunuz tabloya kayıtları atın.
Yani yeni tablo aslında sizin Sonuç elde etmek istediğiniz Query'nin bir kopyası niteliğinde (structure'ına sahip) bir tablo olmalı ve manuel olarak siz bir döngü ile her bir kombinasyon için basit Query'lerle sonuçları yeni tabloya ekleyin ve son olarak da o tabloyu selct eden bir Query yazın.
Başka bir DB kullansaydınız bu kadar zorlanmazdınız diye tahmin ediyorum.
Kolay Gelsin.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/