E-Fatura Seri Bulmak
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
E-Fatura Seri Bulmak
Arkadaşlar Merhaba; Programda E-Arşiv , E-Fatura ve E-Irsaliye serilerini nasıl bulabilirim?
EFATURA
EARSIV
EIRSALIYE Tablolarım var ve bu tablolarda üç karakteri MEF , MAF VE MIF olarak devam ediyor,
MEF000000000020
MAF000000000050
MIF000000000441
en son max değerini nasıl bulabilirim?
3 seri de aynı anda göstermem gerekiyor. Yardımcı olabilir misiniz?
EFATURA
EARSIV
EIRSALIYE Tablolarım var ve bu tablolarda üç karakteri MEF , MAF VE MIF olarak devam ediyor,
MEF000000000020
MAF000000000050
MIF000000000441
en son max değerini nasıl bulabilirim?
3 seri de aynı anda göstermem gerekiyor. Yardımcı olabilir misiniz?
Re: E-Fatura Seri Bulmak
Kayıt sırasında seri ve sıra diye iki field olsaydı, daha kolay olurdu. Bunları select içinde computed field ile birleştirebilirdin.
where ile misal no like 'MEF%' vs gibi (like kullanmadığım için ezberimde kod yok, yazılım hatası olabilir) gelen sonucuda order ile sıralarsın, order a göere de (asc yada desc) ilk yada son kaydı alıp parse edersin, sayı kısmıda integer olarak cast edip bir eklersen bu sana istediğini verir.
Ama string alanlarda sayı sıralamak sıkıntılıdır her zaman, saylarda, soldaki 0 adedi önemsizdir, ama bu string olursa sıralama değişebilir. "09" ve "009" gibi
kolay gele
where ile misal no like 'MEF%' vs gibi (like kullanmadığım için ezberimde kod yok, yazılım hatası olabilir) gelen sonucuda order ile sıralarsın, order a göere de (asc yada desc) ilk yada son kaydı alıp parse edersin, sayı kısmıda integer olarak cast edip bir eklersen bu sana istediğini verir.
Ama string alanlarda sayı sıralamak sıkıntılıdır her zaman, saylarda, soldaki 0 adedi önemsizdir, ama bu string olursa sıralama değişebilir. "09" ve "009" gibi
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 !!!
Re: E-Fatura Seri Bulmak
Doğru mu anladım emin değilim fakat belki şöyle bir önerim olabilir. Seri No alanının string ve 15 karakterle sınırlı olduğunu varsayıyorum.
sıfırlar ile beraber tüm seri noları karakter sayısı olarak eşit ise aşağıdaki şekilde halledilebilir diye düşünüyorum.
Sonuçta her seri no 3 harf 12 sayıdan oluşuyor.
İnşallah işini görür. Kolay gelsin.
sıfırlar ile beraber tüm seri noları karakter sayısı olarak eşit ise aşağıdaki şekilde halledilebilir diye düşünüyorum.
Sonuçta her seri no 3 harf 12 sayıdan oluşuyor.
Kod: Tümünü seç
SELECT Arsiv, Fatura, Irsaliye
FROM "Arsiv.db" Arsiv, "Fatura.DB" Fatura, "Irsaliye.db" Irsaliye
GROUP BY Arsiv, Fatura, Irsaliye
HAVING (MAX( Fatura ) = Fatura)
AND (MAX( Arsiv ) = Arsiv)
AND (MAX( Irsaliye ) = Irsaliye)
Re: E-Fatura Seri Bulmak
Merhaba Yardımlarınız için teşekkür ederim. Ben şu şekilde revize ettim,
Fakat Serileri tek olarak göstermiyor.
Kod: Tümünü seç
SELECT ARSIV.FATIRS_NO , FATURA.FATIRS_NO
FROM TBLEARSIV Arsiv, TBLEFATURA Fatura
GROUP BY Arsiv.FATIRS_NO, Fatura.FATIRS_NO
HAVING (MAX( Fatura.FATIRS_NO) = Fatura.FATIRS_NO) AND (MAX( Arsiv.FATIRS_NO) = Arsiv.FATIRS_NO)
Re: E-Fatura Seri Bulmak
Bu arada sormayı unuttum. Tablolarınız da ID alanları var mı?ozcank yazdı: 01 Şub 2023 11:55 Merhaba Yardımlarınız için teşekkür ederim. Ben şu şekilde revize ettim,
Fakat Serileri tek olarak göstermiyor.Kod: Tümünü seç
SELECT ARSIV.FATIRS_NO , FATURA.FATIRS_NO FROM TBLEARSIV Arsiv, TBLEFATURA Fatura GROUP BY Arsiv.FATIRS_NO, Fatura.FATIRS_NO HAVING (MAX( Fatura.FATIRS_NO) = Fatura.FATIRS_NO) AND (MAX( Arsiv.FATIRS_NO) = Arsiv.FATIRS_NO)
Ekran görüntüsü.jpg
Tam olarak ne istediğinizi yada sorunun ne olduğunu anlayamadım. Maalesef görüntüyü göremiyorum. Görüntüyü göremeyen birtek ben miyim?
Re: E-Fatura Seri Bulmak
Merhaba, Yapmak istediğim
MEF000000000020
MAF000000000050
MIF000000000441
bu şekilde MEF, MAF,MIF serilerinin sonuncusunu tek satır da bulup bir artırmak.
MEF000000000020
MAF000000000050
MIF000000000441
bu şekilde MEF, MAF,MIF serilerinin sonuncusunu tek satır da bulup bir artırmak.
Re: E-Fatura Seri Bulmak
Tablolarınız da ayrıca ID alanı var mı?ozcank yazdı: 01 Şub 2023 09:03 Merhaba, Yapmak istediğim
MEF000000000020
MAF000000000050
MIF000000000441
bu şekilde MEF, MAF,MIF serilerinin sonuncusunu tek satır da bulup bir artırmak.
Yeniden 3 ayrı tablo oluşturup test ettim. Oluşturduğum tablolar ID ve Arsiv - ID ve Fatura - ID ve Irsaliye alanlarından oluşuyor.
Umarım eklentiyi görebilirsiniz. Ben kendi eklentimi de indiremiyorum.
- Dosya ekleri
-
- test.png (3.5 KiB) 2570 kere görüntülendi
Re: E-Fatura Seri Bulmak
Merhaba,ozcank yazdı: 26 Oca 2023 07:22 Arkadaşlar Merhaba; Programda E-Arşiv , E-Fatura ve E-Irsaliye serilerini nasıl bulabilirim?
EFATURA
EARSIV
EIRSALIYE Tablolarım var ve bu tablolarda üç karakteri MEF , MAF VE MIF olarak devam ediyor,
MEF000000000020
MAF000000000050
MIF000000000441
en son max değerini nasıl bulabilirim?
3 seri de aynı anda göstermem gerekiyor. Yardımcı olabilir misiniz?
1- Bu tür soruları sorarken kullandığınız veritabanı ve sürüm bilgisini de paylaşmanızda fayda var. Sürüm her zaman elzem gözükmeyebilir. Ancak bazı veritabanları belli sürümlerinde ek kolaylıklar/özellikler eklerler. Bu tür şeylerin problem çözümüne katkısı olabilir.
2- Eğer belli değerler içinden elde etmek istediğiniz sonuç var ise örnek tablo ve verileri oluşturacak SQL paylaşmanızda büyük fayda var.
3- Son olarak elde etmek istediğiniz sonucu da yazmanız gerekir ki yardımcı olacak kişiler tarifinizi daha kolay anlayabilirler.
FirebirdSQL kullandığınızı ve aşağıdaki şekilde bir tablo yapısına ve değerlere sahip olduğunuzu varsayıyorum
Kod: Tümünü seç
create table efatura(id varchar(15));
create table earsiv(id varchar(15));
create table eirsaliye(id varchar(15));
commit;
insert into efatura values('MEF000000000018');
insert into efatura values('MEF000000000019');
insert into efatura values('MEF000000000020');
insert into earsiv values('MAF000000000048');
insert into earsiv values('MAF000000000049');
insert into earsiv values('MAF000000000050');
insert into eirsaliye values('MIF000000000439');
insert into eirsaliye values('MIF000000000440');
insert into eirsaliye values('MIF000000000441');
Kod: Tümünü seç
select id from (select first 1 id, cast(substring(id from 4) as bigint) counter from efatura order by 2 desc)
union all
select id from (select first 1 id, cast(substring(id from 4) as bigint) counter from earsiv order by 2 desc)
union all
select id from (select first 1 id, cast(substring(id from 4) as bigint) counter from eirsaliye order by 2 desc)
En azından mevcut tabloya iki kolon ekleyerek (Seri ve sıra) bu kolonlar üzerinde indeks oluşturarak performans kaybını azaltmaya çalışabilirsiniz.
Teşekkürler.
İyi çalışmalar,
Ertan