1

Konu: Bir cursorda UNIQUE değerleri saymak

Merhaba,
Arama sonucu elde ettiğim bir cursor'um var. Yapısı şöyle:
BIOPSI  C  9
MATERYAL C  2
MATSAYI   N  2
Bu cursor'da BIOPSI field'ının aynı değer alan kayıtlarını bire indirgeyip kayıtları saymak istiyorum. Sonucu bir değişkene atayacağım.
COUNT komutu kullanmayı düşündüm ama yapamadım.
UNIQUE diye bir fonksiyon var ama nasıl kullanılacağı VFP Help'inde yazmıyor. Çünkü eski bir komut imiş.
FOR NEXT döngüsü belki olabilir ama daha kısa ve hızlı bir yolu var olabilir diye düşünüyorum.
Yardım ederseniz sevinirim.
Teşekkürler...

2

Re: Bir cursorda UNIQUE değerleri saymak

Emnim daha kestirme bir yolu vardır. Ama ilk anda aklıma şöyle bir çözüm geldi.
cursor u alırken BIOPSI ye göre sıralı READWRITE olarak alırsan;

Visual Fox Pro
Select cCursor

ALTER TABLE Alias() Add Column Sayi N(8)
Replace All Sayi With 1
TOTAL ON BIOPSI To tpTable
SELECT * FROM tpTable INTO Sonuc
BROWSE

3

Re: Bir cursorda UNIQUE değerleri saymak

Ne yapmak istedigini biraz daha aciklar misin? Ya yanlis anladim ya da cok basit aslinda:

Visual Fox Pro
select biopsi, count(*) from myTable group by 1

4

Re: Bir cursorda UNIQUE değerleri saymak

Doğru; belki de çok basit.

Yapmak istediğim şey; bu cursordaki kayıt sayısını bir değişkene atamak. Ancak BIOPSI field'ındaki değerleri aynı olanları eleyerek bunu yapmak. Örneğin BIOPSI değeri "200905125" olan 3 kayıt olabilir. Bunu 3 değil 1 olarak saymak.

Yani SELECT DISTINCT ile başlayan ve sadece sayma işilemi yapacak bir şey yazmak gerek diye düşünüyorum.


Yardımlarınız için teşekkür ederim.

5

Re: Bir cursorda UNIQUE değerleri saymak

Sevgili Ali Rıza,
Yapmak istediğini yanlış anlamadıysam basitçe şöyle yapabilirsin:

Visual Fox Pro
Use dosya

set unique on
index on biopsi to biopsi
set index to biopsi
browse


browse komutundan sonra ayni olan biopsilerden sadece ilki görüntülenir.
Bu metod yaklaşık 1980 lerin başından kalma ama hala işe yarıyor.
Bunun için program yapmana bile gerek yok. Command penceresine komutları girmen yeterli olur.
Kolaygelsin.
Erdal

6

Re: Bir cursorda UNIQUE değerleri saymak

Visual Fox Pro
select count(distinct biopsi) as sayi from myTable

7

Re: Bir cursorda UNIQUE değerleri saymak

Yanıtlar için teşekkür ederim.

Erdal Bey, benim istediğim programatik olarak bunu yapmak. Sizin öneriniz daha çok interaktif bir çözüm. Yine de çok teşekkür ederim.

Çetin Bey, her zamanki gibi tek satırda işi bitiren mükemmel bir çözüm.

Bu forum, bilgimi yanı sıra program yazma zevkimi de artıran bir site sayenizde.

8

Re: Bir cursorda UNIQUE değerleri saymak

Chursiluggist yazdı:

ohhhhh, really?

bu siteye iyi sıhatte olsunlar mı dadandı?

9

Re: Bir cursorda UNIQUE değerleri saymak

sanırım üye olmak ve mesaj yazmak için onay gerekmiyor. soykan bunu değiştirmezse böyle devam eder gider...

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

10

Re: Bir cursorda UNIQUE değerleri saymak

metin yazdı:

sanırım üye olmak ve mesaj yazmak için onay gerekmiyor. soykan bunu değiştirmezse böyle devam eder gider...

validation var ancak validation sonrasi boyle abuk seyler yazan olunca banliyorum komple

http://www.soykansoft.com/images/twitter.jpghttp://www.soykansoft.com/images/wp.jpg

11

Re: Bir cursorda UNIQUE değerleri saymak

vay çakallar...

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

12

Re: Bir cursorda UNIQUE değerleri saymak

soykanozcelik yazdı:
metin yazdı:

sanırım üye olmak ve mesaj yazmak için onay gerekmiyor. soykan bunu değiştirmezse böyle devam eder gider...

validation var ancak validation sonrasi boyle abuk seyler yazan olunca banliyorum komple


muhattap olmayın, küçük düşerler

VFP9 SP2