1 Son düzenleyen, ugurlu2001 (18.06.2009 11:09:36)

Konu: Mantıklı bir açıklama yada çözüm önerisi olan var mı?

SQL ile 2 tablodan özet toplamlar alıp; 3. bir tabloda kullanıyorum. Sorunum şu:

MusteriSiparis.DBF Kod C(15); VerilenAdet (N4), HazirAdet(N4)
AtolyeSiparis.DBF Kod C(15); VerilenAdet (N4), HazirAdet(N4)

Visual Fox Pro
SELECT ;

    Sipislb.Kod AS ModelNo, ;
    SUM(Sipislb.adet) AS AtSipAdet, ;
    SUM(Sipislb.hadet) AS AtHazAdet, ;
    (SUM(Sipislb.adet) - SUM(Sipislb.hadet)) AS AtKaladet ;
FROM ;
    Sipislb ;
GROUP BY Sipislb.kod ;
ORDER BY Sipislb.kod ;
INTO TABLE TbSipAtl
 
 
SELECT ;
    Sipisl.Kod AS ModelNo, ;
    SUM(Sipisl.adet) AS MuSipAdet, ;
    SUM(Sipisl.hadet) AS MuHazAdet, ;
    (SUM(Sipisl.adet) - SUM(Sipisl.hadet)) AS MuKaladet ;
FROM ;
    Sipisl ;
GROUP BY Sipisl.kod ;
ORDER BY Sipisl.kod ;
INTO TABLE TbSipMus
 
 
* //*****
Select ;
*....
*...
*....
      Nvl(TbSipAtl.AtSipAdet,0) AS AtSipAdet,;
      Nvl(TbSipAtl.AtHazAdet,0) AS AtHazAdet, ;
      Nvl(TbSipAtl.AtKalAdet,0) AS AtKalAdet, ;
      Nvl(TbSipMus.MuSipAdet,0) AS MuSipAdet, ;
      Nvl(TbSipMus.MuHazAdet,0) AS MuHazAdet, ;
      Nvl(TbSipMus.MuKalAdet,0) AS MuKalAdet, ;
*....
*....
    LEFT JOIN TbSipAtl ON  Amodel.kod = TbSipAtl.ModelNo ;
    LEFT JOIN TbSipMus ON  Amodel.kod = TbSipMus.ModelNo ;
*//******

Joinlerden sonra Aldığım sonuç tablosunda; SUM() ile hesapladığım N(4) alanlar N(1) oluyor ve bazılarında * var?

Öneriler için şimdiden teşekkür ediyorum.

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

2

Re: Mantıklı bir açıklama yada çözüm önerisi olan var mı?

Nvl(TbSipAtl.AtSipAdet,0) AS AtSipAdet, ;
yerine
Nvl(TbSipAtl.AtSipAdet,0000) AS AtSipAdet,;

yazınca halloldu..

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

3 Son düzenleyen, cetinbasoz (18.06.2009 13:14:38)

Re: Mantıklı bir açıklama yada çözüm önerisi olan var mı?

Daha iyisi:)

cast(TbSipAtl.AtSipAdet as int) as TbSipAtl.AtSipAdet

O fieldleri bastan integer yapsan, o da 4 byte:)

Not: Seninki hala problemli (aslinda bastan problemli, data kaybina acik). Ya iki kayitta:

9990
11

varsa?

Toplam **** (overflow). Ya da 10000 kayit kayit basina ortalama 1 gene sum()'da overflow.

4

Re: Mantıklı bir açıklama yada çözüm önerisi olan var mı?

Üstad hemen düzeltiyorum. Çok teşekkürler

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü