Sorguda Sıra numarası oluşturmak

1 2
23/11/2013, 01:12

fulem

Sorguda sıra numarası oluşturma ile bir çok örnek var lakin sıralamada veri aynı olunca sıralamada tekrar eden sıra numarası oluşuyor bunu nasıl engelleriz
Örnek olarak

yaş İsim
3 xxxxx
5 yyyy
3 zzzzz
3 mmmm
Sorgu çıktısı
Sıra No isim Aslında Olması Gereken sıra No
3 xxxxxx 1
3 zzzzzz 2
3 mmmm 3
4 yyyyy 4
23/11/2013, 22:00

yorum70

Örnek ekleyip,daha açık sorunuzu sorunuz.
24/11/2013, 05:38

KJS

sn yorum70,
demek istediği: diyelim bir tablomuz var ve içinde 1 alan ve iki tane (A ve B) veri var.
Sorgu oluşturduğun zaman - Arkadaşın istediği
A - 1 A
B - 2 B
Hiç olmayan bir yerden sıra numarası koymak.
Ben baya bir uğraştım; raporda oluyor da sorguda bir türlü yapamadım.
Değerli hocalarımız bu konuda bizi aydınlatırsa sevinirim. Çünkü bu konuyu ben de merak ediyorum. Büyük ihtimal yapılamıyor, ama bakalım hocalrımız ne diyecek
25/11/2013, 01:56

fulem

Ek Ornek olarak koyuldu. Tablo1 master tablodur diger tablolar sorguda nasıl bir SIRA numarası üretmek istediğimi anlatmak için koyulmuştur örnekten anlaşılacağı gibi aynı değere sahip veriler sıralanırken bile sıra numarası ardışık olacak ve proje Access 2003 altında çalışacak ve kod ile değil Sql sorgu ile yapılması sağlanacak. yani VB Kodu ile dosyası açın verileri çekin for next döngüsü ile istediğiniz gibi sıralayın demenizi beklemiyorum. İlgilenenlere duyurulur.

Bir şey daha var onu yazmayı unutmuşum Sıralama sorgusu Başka bir sorgudan çekilen veriler üzerine uygulanacak
25/11/2013, 02:06

Kur@l

 select * from tablo1 order by İŞİ,YAŞI 
Bu önce işi sonra yaşına göre sıralar.
 select * from tablo1 order by İŞİ
Bu işine göre sıralar.
 select * from tablo1 order by YAŞI 
Bu yaşına göre sıralar.

Aşağıda da Sql ile sıralama yapmak ile ilgili bir anlatım vardır.


Sıralama Yapmak


SELECT sütunlar FROM tablo_adı ve varsa koşulları WHERE koşul şeklinde yazdıktan sonra ORDER sütun_adı ile listenin neye göre sıralanacağını belirtiriz.

Aşağıdaki verilere sahip bir "uyeler" tablomuz olduğunu düşünürsek:

SELECT * FROM uyeler;

+----+-------+-----+
| id | isim | yas |
+----+-------+-----+
| 1 | Ali | 39 |
| 2 | Gözde | 28 |
| 3 | Sevim | 24 |
| 4 | Ayşe | 32 |
| 5 | Halil | 48 |
| 6 | Ece | 24 |
+----+-------+-----+



Sıralamanın -farklı bir kural belirtilmemişse- kayıt sırasına göre yapıldığını görebiliriz. Bu listeyi yaşa göre sıralamak istersek sorgunun sonuna ORDER BY yas ekleriz:

SELECT * FROM uyeler ORDER BY yas;

+----+-------+-----+
| id | isim | yas |
+----+-------+-----+
| 3 | Sevim | 24 |
| 6 | Ece | 24 |
| 2 | Gözde | 28 |
| 4 | Ayşe | 32 |
| 1 | Ali | 39 |
| 5 | Halil | 48 |
+----+-------+-----+



Dikkat edilirse 24 yaşında iki üye var. Fakat Sevim'in kayıt numarası daha küçük olduğundan yukarıda görünüyor. Bu durumda ikinci bir sıralamada dikkat edilecek husus belirtmek istersek virgül koyarak diğer geçerli sütun adını yazarız:

SELECT * FROM uyeler ORDER BY yas, isim;

+----+-------+-----+
| id | isim | yas |
+----+-------+-----+
| 6 | Ece | 24 |
| 3 | Sevim | 24 |
| 2 | Gözde | 28 |
| 4 | Ayşe | 32 |
| 1 | Ali | 39 |
| 5 | Halil | 48 |
+----+-------+-----+



Nitekim bu örnekte eğer "yas" sütunundaki veriler eşitse dikkat edilecek ikinci sütunun "isim" sütunu olacağını bildirdik. Yaptığımız 3 örnekte de sıralamanın sayılarda küçükten büyüğe, harflerde alfabetik olarak listelendiğini gördük. Eğer bu durumun tersini yapmak istiyorsak sütun adından sonra DESC eki getirmemiz yeterlidir. Örneğin yaşı büyükten küçüğe sıralayacak olursak:

SELECT * FROM uyeler ORDER BY yas DESC, isim;

+----+-------+-----+
| id | isim | yas |
+----+-------+-----+
| 5 | Halil | 48 |
| 1 | Ali | 39 |
| 4 | Ayşe | 32 |
| 2 | Gözde | 28 |
| 6 | Ece | 24 |
| 3 | Sevim | 24 |
+----+-------+-----+
25/11/2013, 02:37

KJS

sn,Kur@l
Deylim sadece Uyeler tablo ve isim alanı var. (Tek tablo tek alan)
Sevim
Aylin
iki tane de veri var.
ada göre sıralatalım ve başına sıra numarası koydralım.
yani
1 Aylin
2 Sevim
bunu sorguda yapabilmek mümkün mü?
1 2