SQL de sorguya (sahte)artan sayı eklemek
Uğur198205.08.2005 - 12:59:32
Merhaba arkadaşlar;

Hareket Tablosundaki veriler. Arrow

Kod Adi Arac_No
1 ugur 1
4 irem 2
5 hayro 2

Çıkmasını istediğim şöyle bir liste. Arrow

SahteArtanSayi Kod Adi Arac_No
1 1 ugur 1
2 4 irem 2
3 5 hayro 2


Yukarıdaki gibi ilk kayıttan itibaren 1 artarak gitmesini istiyorum...

Bunu SQL de nasıl yapabiliriz... Question

vt: Firebird 1.5

Teşekkür ederim...
 
miskin05.08.2005 - 13:26:52

SELECT Kod, Adi, Arac_No,
Count(Kod) as SahteArtanSayi
From Harakettablosu
Group by Kod



Bilmem böyle birsey isine yararmi
 
Uğur198205.08.2005 - 13:43:30
Ne yazık ki olmuyor.Büyün satırlara aynı değeri atıyor.
Aslında bu Udf ile yapılabilir gibi geliyor.
Rfunc Udf de IncDate.bunun benzeri bir Udf ile kolay yapılabilir.Ama onu da bulamadım... Rolling Eyes

iyi günler..
 
t-hex05.08.2005 - 13:44:12
Tek SQL cümlesi içinde nasıl yapılır bilmiyorum ama aklıma gelen tek yöntem bu işlem için bir generator oluşturmak (örneğin GEN_REC_NO) ve onun değerini bu sql'i çalıştırmadan önce 0 yapmak.

set generator GEN_REC_NO to 0;

Sonra da SQL'ini şu şekilde değiştirmek

select gen_id(gen_rec_no,1) as SahteArtanSayi,alan1,alan2 from table;


Umarım yardımcı olur.
 
Uğur198205.08.2005 - 13:52:41
@t-hex teşekkür ederim. Wink

iyi günler...
 
onaydin05.08.2005 - 13:55:17
Başka veritabanlarında number, identity tarzı fonksiyonlarla satır numarası alınabiliyor. Firebird'de sanırım böyle bir fonksiyon yok ama zorlayarak bu şekle getirilebilir. Aklıma 2 yol geliyor ama boş yere uğraşmaya da gerek yok.
Delphi tarafında i = i + 1 gibi bir şekilde yazsanız daha kolay olur.
 
onaydin05.08.2005 - 13:57:54
Evet bunu dusunmemistim. Süper bir çözüm.
 
cemarik05.08.2005 - 16:54:29
Madem SQL Kısmında yapmak istiyorsun neden stored yapmıyorsun?

CREATE PROCEDURE PROC_ACTIONS
RETURNS (
KOD VARCHAR(20),
ADI VARCHAR(50),
ARAC_NO INTEGER,
SIRA INTEGER)
AS
BEGIN
SIRA = 1;
FOR
SELECT
Kod,
Adi,
Arac_No,
FROM HAREKET_TABLOSU
INTO :KOD,
:ADI,
:ARAC_NO;
BEGIN
SIRA = SIRA+1;
SUSPEND;
END
END
 
sadettinpolat05.08.2005 - 17:32:52
Başka veritabanlarında number, identity tarzı fonksiyonlarla satır numarası alınabiliyor.


2.0 da eklenmiş olması lazım..
 
Ali Erdoğan05.08.2005 - 18:31:17
Başka veritabanlarında number, identity tarzı fonksiyonlarla satır numarası alınabiliyor. Firebird'de sanırım böyle bir fonksiyon yok ama zorlayarak bu şekle getirilebilir. Aklıma 2 yol geliyor ama boş yere uğraşmaya da gerek yok.
Delphi tarafında i = i + 1 gibi bir şekilde yazsanız daha kolay olur.


Sql server da bu numarayı barından değişkenin ismi nedir?
 
Uğur198206.08.2005 - 09:58:20
Madem SQL Kısmında yapmak istiyorsun neden stored yapmıyorsun?

CREATE PROCEDURE PROC_ACTIONS
RETURNS (
KOD VARCHAR(20),
ADI VARCHAR(50),
ARAC_NO INTEGER,
SIRA INTEGER)
AS
BEGIN
SIRA = 1;
FOR
SELECT
Kod,
Adi,
Arac_No,
FROM HAREKET_TABLOSU
INTO :KOD,
:ADI,
:ARAC_NO;
BEGIN
SIRA = SIRA+1;
SUSPEND;
END
END

Evet bu da güzel bir çözüm..teşekkür ederim..

iyi günler...
 
ng06.08.2005 - 11:41:56
Benimde bölyle bir şeye ihtiyacım olmuştu. Delphi tarafında Query'i içerisinde calculated bir alan oluşturdum mesela sayi.oncalculated cısmında ibQuery1sayi.asinteger:=ibQuery1sayi.asinteger+1; demiştim olmuştu.
başarılar
 
NOT : Bu sayfa google'un siteyi indekslemesi içindir. www.delphiturkiye.com/forum/ adresini kullanınız!
1998-2006 www.delphiturkiye.com