1

Konu: karekter+tarih indexleme

selamlar;

adi+usblz+usbtar için en dosğu index nasıl olmalı.

Visual Fox Pro
sele adi+usblz+dtoc(usbtar),* from xx3 order by 1


usblz dekiler deki tarih sıralaması yanlış çıkıyor.

bende bunu yaptım.

Visual Fox Pro
sele adi+usblz+RiGHT(ALLTRIM(DTOC(usbtar)),4)+SUBSTR(ALLTRIM(DTOC(usbtar)),4,2)+LEFT(ALLTRIM(DTOC(usbtar)),2) 

,* from xx3 order by 1

doğrusu nedir?

Visual Fox Pro
CreateCursor_XX3()

 
 
Procedure CreateCursor_XX3
LOCAL lcData, lcTemp
lcTemp = SYS(2015)+'.tmp'
TEXT TO m.lcData noshow
"07.1-03.06","08-36",01.09.2008
"07.1-03.06","08-03",15.01.2008
"07.1-03.06","08-02",08.01.2008
"07.1-03.06","08-08",19.02.2008
"07.1-03.06","08-08",22.02.2008
"07.1-03.06","08-10",04.03.2008
"07.1-03.06","08-11",11.03.2008
"07.1-03.06","08-15",08.04.2008
"07.1-03.06","08-16",15.04.2008
"07.1-03.06","08-17",22.04.2008
"07.1-03.06","08-18",29.04.2008
"07.1-03.06","08-18",02.05.2008
"07.1-03.06","08-02",08.01.2008
"07.1-03.06","08-04",22.01.2008
"07.1-03.06","08-20",15.05.2008
"07.1-03.06","08-21",22.05.2008
"07.1-03.06","08-04",22.01.2008
"07.1-03.06","08-22",27.05.2008
"07.1-03.06","08-23",03.06.2008
"07.1-03.06","08-24",10.06.2008
"07.1-03.06","08-25",17.06.2008
"07.1-03.06","08-26",24.06.2008
"07.1-03.06","08-09",26.02.2008
"07.1-03.06","08-27",01.07.2008
"07.1-03.06","08-28",08.07.2008
"07.1-03.06","08-29",15.07.2008
"07.1-03.06","08-30",22.07.2008
"07.1-03.06","08-10",07.03.2008
"07.1-03.06","08-31",29.07.2008
"07.1-03.06","08-15",08.04.2008
"07.1-03.06","08-16",15.04.2008
"07.1-03.06","08-18",29.04.2008
"07.1-03.06","08-18",02.05.2008
"07.1-03.06","08-20",13.05.2008
"07.1-03.06","08-21",20.05.2008
"07.1-03.06","08-22",27.05.2008
"07.1-03.06","08-23",03.06.2008
"07.1-03.06","08-27",01.07.2008
"07.1-03.06","08-28",08.07.2008
"07.1-03.06","08-29",15.07.2008
"07.1-03.06","08-30",22.07.2008
"07.1-03.06","08-31",31.07.2008
"07.1-03.06","08-32",05.08.2008
"07.1-03.06","08-32",05.08.2008
"07.1-03.06","08-33",12.08.2008
"07.1-03.06","08-33",12.08.2008
"07.1-03.06","08-36",01.09.2008
"07.1-03.06","08-36",01.09.2008
"07.1-03.06","08-14",04.04.2008
"07.1-03.06","08-14",04.04.2008
"07.1-03.06","08-18",29.04.2008
"07.1-03.06","08-18",02.05.2008
"07.1-03.06","08-30",22.07.2008
"07.1-03.06","08-31",29.07.2008
"07.1-03.06","08-34",19.08.2008
"07.1-03.06","08-34",19.08.2008
"07.1-03.06","08-36",01.09.2008
"07.2-03.06","08-36",01.09.2008
"07.2-03.06","08-07",12.02.2008
"07.2-03.06","08-19",08.05.2008
"07.2-03.06","08-08",19.02.2008
"07.2-03.06","08-08",19.02.2008
"07.2-03.06","08-10",04.03.2008
"07.2-03.06","08-11",14.03.2008
"07.2-03.06","08-31",29.07.2008
"07.2-03.06","08-24",12.06.2008
"07.2-03.06","08-15",08.04.2008
"07.2-03.06","08-16",15.04.2008
"07.2-03.06","08-16",17.04.2008
"07.2-03.06","08-17",22.04.2008
"07.2-03.06","08-17",24.04.2008
"07.2-03.06","08-18",29.04.2008
"07.2-03.06","08-18",02.05.2008
"07.2-03.06","08-21",22.05.2008
"07.2-03.06","08-20",15.05.2008
"07.2-03.06","08-23",03.06.2008
"07.2-03.06","08-26",24.06.2008
"07.2-03.06","08-22",27.05.2008
"07.2-03.06","08-23",05.06.2008
"07.2-03.06","08-26",24.06.2008
"07.2-03.06","08-25",17.06.2008
"07.2-03.06","08-27",03.07.2008
"07.2-03.06","08-25",19.06.2008
"07.2-03.06","08-29",15.07.2008
"07.2-03.06","08-27",01.07.2008
"07.2-03.06","08-28",08.07.2008
"07.2-03.06","08-29",17.07.2008
"07.2-03.06","08-14",03.04.2008
"07.2-03.06","08-15",08.04.2008
"07.2-03.06","08-16",15.04.2008
"07.2-03.06","08-18",02.05.2008
"07.2-03.06","08-21",20.05.2008
"07.2-03.06","08-20",13.05.2008
"07.2-03.06","08-21",22.05.2008
"07.2-03.06","08-21",22.05.2008
"07.2-03.06","08-22",29.05.2008
"07.2-03.06","08-24",12.06.2008
"07.2-03.06","08-25",19.06.2008
"07.2-03.06","08-31",31.07.2008
"07.2-03.06","08-34",22.08.2008
"07.2-03.06","08-29",15.07.2008
"07.2-03.06","08-34",20.08.2008
"07.2-03.06","08-31",31.07.2008
"07.2-03.06","08-32",05.08.2008
"07.2-03.06","08-33",12.08.2008
"07.2-03.06","08-32",07.08.2008
"07.2-03.06","08-34",19.08.2008
"07.2-03.06","08-33",12.08.2008
"07.2-03.06","08-36",01.09.2008
"07.2-03.06","08-26",27.06.2008
"07.2-03.06","08-18",29.04.2008
"07.2-03.06","08-18",02.05.2008
"07.2-03.06","08-24",10.06.2008
"07.2-03.06","08-24",12.06.2008
"07.2-03.06","08-28",10.07.2008
"07.2-03.06","08-28",08.07.2008
"07.2-03.06","08-30",22.07.2008
"07.2-03.06","08-32",05.08.2008
"07.2-03.06","08-32",07.08.2008
"07.2-03.06","08-33",12.08.2008
"07.2-03.06","08-36",01.09.2008
"38.0-06.06","08-02",14.01.2008
"38.0-06.06","08-04",30.01.2008
"38.0-06.06","08-36",01.09.2008
"38.0-06.06","08-04",22.01.2008
"38.0-06.06","08-03",15.01.2008
"38.0-06.06","08-02",08.01.2008
"38.0-06.06","08-11",11.03.2008
"38.0-06.06","08-12",18.03.2008
"38.0-06.06","08-07",12.02.2008
"38.0-06.06","08-05",29.01.2008
"38.0-06.06","08-13",28.03.2008
"38.0-06.06","08-10",07.03.2008
"38.0-06.06","08-15",08.04.2008
"38.0-06.06","08-17",22.04.2008
"38.0-06.06","08-07",15.02.2008
"38.0-06.06","08-18",02.05.2008
"38.0-06.06","08-16",15.04.2008
"38.0-06.06","08-18",29.04.2008
"38.0-06.06","08-25",19.06.2008
"38.0-06.06","08-21",22.05.2008
"38.0-06.06","08-23",05.06.2008
"38.0-06.06","08-32",07.08.2008
"38.0-06.06","08-12",18.03.2008
"38.0-06.06","08-14",01.04.2008
"38.0-06.06","08-15",08.04.2008
"38.0-06.06","08-19",08.05.2008
"38.0-06.06","08-20",15.05.2008
"38.0-06.06","08-22",29.05.2008
"38.0-06.06","08-24",12.06.2008
"38.0-06.06","08-27",03.07.2008
"38.0-06.06","08-30",24.07.2008
"38.0-06.06","08-26",27.06.2008
"38.0-06.06","08-26",27.06.2008
"38.0-06.06","08-29",17.07.2008
"38.0-06.06","08-29",17.07.2008
"38.0-06.06","08-31",31.07.2008
"38.0-06.06","08-31",31.07.2008
"38.0-06.06","08-36",01.09.2008
"38.0-06.06","08-36",01.09.2008
"38.0-06.06","08-18",02.05.2008
"38.0-06.06","08-18",02.05.2008
 
ENDTEXT
 
STRTOFILE(m.lcData,m.lcTemp)
 
create CURSOR XX3 ;
( ;
  ADI C(10,0)  NOT  NULL  ;
  ,USBLZ C(5,0)  NOT  NULL  ;
  ,USBTAR D(8,0)  NOT  NULL  ;
  )
 
APPEND FROM (m.lcTemp) TYPE delimited
ERASE (m.lcTemp)
endproc
Bilmediğin Neyse Yanıldığındır.

2 Son düzenleyen, ugurlu2001 (25.03.2008 11:06:53)

Re: karekter+tarih indexleme

adi+usblz+usbtar için en dosğu index nasıl olmalı.

Visual Fox Pro
sele adi+usblz+dtoc(usbtar),* from xx3 order by 1


usblz dekiler deki tarih sıralaması yanlış çıkıyor.

bende bunu yaptım.

Visual Fox Pro
sele adi+usblz+RiGHT(ALLTRIM(DTOC(usbtar)),4)+SUBSTR(ALLTRIM(DTOC(usbtar)),4,2)+LEFT(ALLTRIM(DTOC(usbtar)),2) ,* from xx3 order by 1

doğrusu nedir?

Mehmet, ben iki sorgu sonucu arasında sıralama farkı  göremedim.

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

Re: karekter+tarih indexleme

adi+usblz+usbtar index de
bu şekilde geliyor.
"38.0-06.06","08-18",02.05.2008
"38.0-06.06","08-18",29.04.2008

sonrakinde (doğru olarak ) bu geliyor.
"38.0-06.06","08-18",29.04.2008
"38.0-06.06","08-18",02.05.2008

zaten sorun da burada bu kayıtlarda.

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

4

Re: karekter+tarih indexleme

DTOC() yerine DTOS() denemeni öneriririm. tarih sıralaması düzelir ihtimal.

5

Re: karekter+tarih indexleme

DTOS() veya DTOC(tarih,1) kullanmalısın, o andaki tarih formatın ne olursa olsun her ikiside yıl-ay-gün yani "20080325" şeklinde çıktı verir.

6

Re: karekter+tarih indexleme

çok teşekkürler.

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

7

Re: karekter+tarih indexleme

Ramazan,
Tarih, TarihSaat siralanabilir sekilleri Dtos(), Dtoc(,1),Ttoc(,1) ancak SQL'de neden oyle birseyle ugrasiyorsun.


sele * from xx3 order by adi, usblz, usbtar

Daha basit, acik ve cok daha zor siralamalara izin veriyor. Mesela ilk ikisini normal sonuncuyu azalan sirada istersen:

sele * from xx3 order by adi, usblz, usbtar desc

sansin var. Bak yapmasi biraz dert olan bir siralama:

ID: 1,2....N integer
revizyon: 1,2...N integer

ID ye gore artan, revizyona gore azalan bir siralama SQL ile cok kolay:

select * from myTable order by Id, revizyon desc

Ustelik bu tip siralamalar aynen SQL server'da filan da calisir. Bunun seninkine benzer sekli ise biraz takla attirmak oluyor.

8

Re: karekter+tarih indexleme

cetin abi;
bilgi için çok teşekkürler. genelde tarif ettiğin gibi kullanmaya çalışıyorum. yanlız bu konu DBF içindi set Set order ile arama kriteri olarak da kullanıyorum onun için gerekliydi.

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