string sum
string sum
Merhaba.
Sum() fonksiyonunun string için bir türevi var mıdır?
yani
1 a
1 b
2 a
2 c
--------------
1 a,b
2 a,c gibi bir ifade
Sum() fonksiyonunun string için bir türevi var mıdır?
yani
1 a
1 b
2 a
2 c
--------------
1 a,b
2 a,c gibi bir ifade
sum ın açılımı summary dir yani matematiksel bir fonksiyondur bunu FireBird içinde sadede sayısal alanlar için kullanabilirsin. senin istediğin Adet ise count verdiğin field ın verdiğin koşullara uygun kaç adet oldunu döndürür. Field ın tipi önemli değildir.
Kolay gele
Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
anlıyorum.
peki bunu bir fonksiyon yazarak yapabilir miyim?
(sadece 1 haftadır uğraşıyorum)
yani uzun bir sql cümlesi yazdım. sonucunda 25 alan seçiyor.
kısaca
miktar | tanım | renkler |
123 kalem mavi
123 kalem sarı
123 kalem mor
213 silgi mavi
213 silgi mor
gibi bir sonuca ulaşıyorum
yapmak istediğim sadece
miktar | tanım | renkler |
123 kalem mavi,sarı,mor
213 silgi mavi,mor
en azından şu yöne doğru gidebilirsin demeniz bile yeterli.
teşekürler
peki bunu bir fonksiyon yazarak yapabilir miyim?
(sadece 1 haftadır uğraşıyorum)
yani uzun bir sql cümlesi yazdım. sonucunda 25 alan seçiyor.
kısaca
miktar | tanım | renkler |
123 kalem mavi
123 kalem sarı
123 kalem mor
213 silgi mavi
213 silgi mor
gibi bir sonuca ulaşıyorum
yapmak istediğim sadece
miktar | tanım | renkler |
123 kalem mavi,sarı,mor
213 silgi mavi,mor
en azından şu yöne doğru gidebilirsin demeniz bile yeterli.
teşekürler
merhaba , bu gibi bir işlem için grup lama fonksiyonlarından yararlanabilrsiniz örneğin,
gibi. bu size yol gösterci olaibilir. iyi çalışmalar.
Kod: Tümünü seç
select count(id) as toplam , kategori , renkler from TABLO group by kategori , renkler order by kategori , renkler
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
Valla vt ne kullanıyosunuz bilmiyorum ama şöyle bir düşündüm sql ile pek bişey çıkaramdım, delphi tarafından da bişey gelmedi aklıma ancak fonksiyon ile yapabilirsiniz gibi geldi bana. ms sql server için şöyle bişey yazabiliriz:
Siz bunu çağırırken:
diye çağırırsınız. dönen değer:
şeklinde olur
Kod: Tümünü seç
CREATE FUNCTION renkler(@tanim varchar(15))
AS RETURNS VARCHAR(50)
DECLARE @renkler varchar(50),@renk varchar(10)
DECLARE CursorName CURSOR
FOR SELECT renk FROM Tablo Where tanim=@tanim
OPEN CursorName
FETCH NEXT FROM CursorName
INTO @renk
WHILE @@FETCH_STATUS = 0
BEGIN
SET @renkler = @renkler +' , ' + @renk
FETCH NEXT FROM CursorName
INTO @renk
END
CLOSE CursorName
DEALLOCATE CursorName
RETURN @renkler
Siz bunu çağırırken:
Kod: Tümünü seç
Select sum(miktar),tanim,dbo.renkler(tanim) AS renkler
From Tablo Group by tanim
Kod: Tümünü seç
miktar tanim renkler
------- ------- ---------
123 kalem mavi , sarı , kırmızı
............................................
çok teşekkürler.
yazdığınız şey tam anlatmak istediğim şey.
veritabanı firebird.
programcı değilim sadece bir rapor almam gerekiyor.
ama tıkandım kaldım.
sanırım sql server için yazdığınız kodları firebird e çevirmek biraz uğraştıracak.
çok teşekkür ediyorum.
sanırım önce firebird için fonksiyon yazmayı öğrenmem gerek.
yazdığınız şey tam anlatmak istediğim şey.
veritabanı firebird.
programcı değilim sadece bir rapor almam gerekiyor.
ama tıkandım kaldım.
sanırım sql server için yazdığınız kodları firebird e çevirmek biraz uğraştıracak.
çok teşekkür ediyorum.
sanırım önce firebird için fonksiyon yazmayı öğrenmem gerek.
Kod: Tümünü seç
CREATE PROCEDURE NEW_PROCEDURE
RETURNS (
AD VARCHAR(10),
MADDE_NO INTEGER,
METIN VARCHAR(255))
AS
declare variable DLR_RENK varchar(10);
begin
For Select MADDE_NO, AD from MADDE group by MADDE_NO, AD into :MADDE_NO, :AD
do
begin
METIN = '';
for select RENK from MADDE where MADDE_NO = :MADDE_NO into :DLR_RENK
do
begin
METIN = METIN || ', ' || DLR_RENK ;
end
METIN = substring(METIN from 2 FOR 255);
suspend;
end