1

Konu: Bu kodu kısatmam mümkünü :)

Visual Fox Pro
SELECT wka_partno,turkce,yetki,ozel,birim,stok,yolda,dis,siparis,sipleri,rahmenauftrag,;

    rezerve,fiyat,carkodu,ambalaj,moq,tessuresi,s_eski_r,;
    miktar1,(s_eski_r-miktar1) AS srmik1,;
    miktar2,((s_eski_r-miktar1)-miktar2) AS srmik2,;
    miktar3,(((s_eski_r-miktar1)-miktar2)-miktar3) AS srmik3,;
    miktar4,((((s_eski_r-miktar1)-miktar2)-miktar3)-miktar4) AS srmik4,;
    miktar5,(((((s_eski_r-miktar1)-miktar2)-miktar3)-miktar4)-miktar5) AS srmik5,;
    miktar6,((((((s_eski_r-miktar1)-miktar2)-miktar3)-miktar4)-miktar5)-miktar6) AS srmik6,;
    miktar7,(((((((s_eski_r-miktar1)-miktar2)-miktar3)-miktar4)-miktar5)-miktar6)-miktar7) AS srmik7,;
    miktar8,((((((((s_eski_r-miktar1)-miktar2)-miktar3)-miktar4)-miktar5)-miktar6)-miktar7)-miktar8) AS srmik8,;
    miktar9,(((((((((s_eski_r-miktar1)-miktar2)-miktar3)-miktar4)-miktar5)-miktar6)-miktar7)-miktar8)-miktar9) AS srmik9,;
    miktar10,((((((((((s_eski_r-miktar1)-miktar2)-miktar3)-miktar4)-miktar5)-miktar6)-miktar7)-miktar8)-miktar9)-miktar10) AS srmik10
FROM tamponmrd ORDER BY wka_partno INTO CURSOR tampon11 READWRITE
Bilmediğin Neyse Yanıldığındır.

2

Re: Bu kodu kısatmam mümkünü :)

calismiyormu ? cok mu uzun geldiginden ?

3

Re: Bu kodu kısatmam mümkünü :)

mrduyar yazdı:
Visual Fox Pro
SELECT wka_partno,turkce,yetki,ozel,birim,stok,yolda,dis,siparis,sipleri,rahmenauftrag,;

    rezerve,fiyat,carkodu,ambalaj,moq,tessuresi,s_eski_r,;
    miktar1,(s_eski_r-miktar1) AS srmik1,;
    miktar2,((s_eski_r-miktar1)-miktar2) AS srmik2,;
    miktar3,(((s_eski_r-miktar1)-miktar2)-miktar3) AS srmik3,;
    miktar4,((((s_eski_r-miktar1)-miktar2)-miktar3)-miktar4) AS srmik4,;
    miktar5,(((((s_eski_r-miktar1)-miktar2)-miktar3)-miktar4)-miktar5) AS srmik5,;
    miktar6,((((((s_eski_r-miktar1)-miktar2)-miktar3)-miktar4)-miktar5)-miktar6) AS srmik6,;
    miktar7,(((((((s_eski_r-miktar1)-miktar2)-miktar3)-miktar4)-miktar5)-miktar6)-miktar7) AS srmik7,;
    miktar8,((((((((s_eski_r-miktar1)-miktar2)-miktar3)-miktar4)-miktar5)-miktar6)-miktar7)-miktar8) AS srmik8,;
    miktar9,(((((((((s_eski_r-miktar1)-miktar2)-miktar3)-miktar4)-miktar5)-miktar6)-miktar7)-miktar8)-miktar9) AS srmik9,;
    miktar10,((((((((((s_eski_r-miktar1)-miktar2)-miktar3)-miktar4)-miktar5)-miktar6)-miktar7)-miktar8)-miktar9)-miktar10) AS srmik10


asagidaki gibi uzun parantezli islemleri onceden hazirlayip SQL e macro olarak versen SQL in kısa olmus olur.Ben buna benzer karmasik hesaplama ile ilgili isleri bu sekilde hallediyorum

Visual Fox Pro
Local LcSrmik,LcSrmik2,LcSrmik3

lcSrmik1 = (s_eski_r-miktar1)
lcSrmik2 = ((s_eski_r-miktar1)-miktar2)
 
SELECT wka_partno,turkce,yetki,ozel,birim,stok,yolda,dis,siparis,sipleri,rahmenauftrag,;
    rezerve,fiyat,carkodu,ambalaj,moq,tessuresi,s_eski_r,;
    miktar1,&lcsrmik1 AS srmik1,;
miktar2,&lcsrmik2 AS srmik2
....
FROM tamponmrd ORDER BY wka_partno INTO CURSOR tampon11 READWRITE

4

Re: Bu kodu kısatmam mümkünü :)

Çalışmasında bir problem yok.  Daha kısa yazmanın bir yolu olduğunu düşünüyorum.

Bilmediğin Neyse Yanıldığındır.

5

Re: Bu kodu kısatmam mümkünü :)

mrduyar yazdı:
Visual Fox Pro
SELECT wka_partno,turkce,yetki,ozel,birim,stok,yolda,dis,siparis,sipleri,rahmenauftrag,;

    rezerve,fiyat,carkodu,ambalaj,moq,tessuresi,s_eski_r,;
    miktar1,(s_eski_r-miktar1) AS srmik1,;
    miktar2,((s_eski_r-miktar1)-miktar2) AS srmik2,;
    miktar3,(((s_eski_r-miktar1)-miktar2)-miktar3) AS srmik3,;
    miktar4,((((s_eski_r-miktar1)-miktar2)-miktar3)-miktar4) AS srmik4,;
    miktar5,(((((s_eski_r-miktar1)-miktar2)-miktar3)-miktar4)-miktar5) AS srmik5,;
    miktar6,((((((s_eski_r-miktar1)-miktar2)-miktar3)-miktar4)-miktar5)-miktar6) AS srmik6,;
    miktar7,(((((((s_eski_r-miktar1)-miktar2)-miktar3)-miktar4)-miktar5)-miktar6)-miktar7) AS srmik7,;
    miktar8,((((((((s_eski_r-miktar1)-miktar2)-miktar3)-miktar4)-miktar5)-miktar6)-miktar7)-miktar8) AS srmik8,;
    miktar9,(((((((((s_eski_r-miktar1)-miktar2)-miktar3)-miktar4)-miktar5)-miktar6)-miktar7)-miktar8)-miktar9) AS srmik9,;
    miktar10,((((((((((s_eski_r-miktar1)-miktar2)-miktar3)-miktar4)-miktar5)-miktar6)-miktar7)-miktar8)-miktar9)-miktar10) AS srmik10
FROM tamponmrd ORDER BY wka_partno INTO CURSOR tampon11 READWRITE


Dogrudan selectde olmaz gibi geliyor. Update veya replace ile kisalir (ya da UDF ile). Ornegin:

Update ile:

Visual Fox Pro
SELECT wka_partno,turkce,yetki,ozel,birim,stok,yolda,dis,siparis,sipleri,rahmenauftrag,;

    rezerve,fiyat,carkodu,ambalaj,moq,tessuresi,s_eski_r,;
    miktar1, miktar1 AS srmik1,;
    miktar2, miktar2 AS srmik2,;
    miktar3, miktar3 AS srmik3,;
    miktar4, miktar4 AS srmik4,;
    miktar5, miktar5 AS srmik5,;
    miktar6, miktar6 AS srmik6,;
    miktar7, miktar7 AS srmik7,;
    miktar8, miktar8 AS srmik8,;
    miktar9, miktar9 AS srmik9,;
    miktar10, miktar10 AS srmik10 ;
FROM tamponmrd ;
ORDER BY wka_partno ;
INTO CURSOR tampon11 ;
READWRITE
 
UPDATE tampon11 set ;
  srmik1 = s_eski_r - srmik1, ;
  srmik2 = srmik1 - srmik2, ;
  srmik3 = srmik2 - srmik3, ;
  srmik4 = srmik3 - srmik4, ;
  srmik5 = srmik4 - srmik5, ;
  srmik6 = srmik5 - srmik6, ;
  srmik7 = srmik6 - srmik7, ;
  srmik8 = srmik7 - srmik8, ;
  srmik9 = srmik8 - srmik9, ;
  srmik10 = srmik9 - srmik10

UDF ile:

Visual Fox Pro
nsum = 0

SELECT wka_partno,turkce,yetki,ozel,birim,stok,yolda,dis,siparis,sipleri,rahmenauftrag,;
    rezerve,fiyat,carkodu,ambalaj,moq,tessuresi,s_eski_r,;
    miktar1, _dec(miktar1,s_eski_r) AS srmik1,;
    miktar2, _dec(miktar2,.null.) AS srmik2,;
    miktar3, _dec(miktar3,.null.) AS srmik3,;
    miktar4, _dec(miktar4,.null.) AS srmik4,;
    miktar5, _dec(miktar5,.null.) AS srmik5,;
    miktar6, _dec(miktar6,.null.) AS srmik6,;
    miktar7, _dec(miktar7,.null.) AS srmik7,;
    miktar8, _dec(miktar8,.null.) AS srmik8,;
    miktar9, _dec(miktar9,.null.) AS srmik9,;
    miktar10, _dec(miktar10,.null.) AS srmik10 ;
FROM tamponmrd ;
ORDER BY wka_partno ;
INTO CURSOR tampon11 ;
READWRITE
 
FUNCTION _dec(tnValue, tnSum)
nSum = nvl(m.tnSum,m.nsum) - m.tnValue
RETURN m.nSum

6

Re: Bu kodu kısatmam mümkünü :)

Teşekkür ederim.

Bilmediğin Neyse Yanıldığındır.