merhaba
delphi7 ve firebirk kullanıyorum.
programın personel hakediş takip kısmı şöyle:
tarih perdonel adı hakediş tutarı
01.09.2006 Ali çoban 30 YTL
02.09.2006 Ali çoban 30 ytl
04.09.2006 Ali Çoban 35 ytl
05.09.2006 Ali çoban 35 ytl
...
bana lazım olan sorgu çu soruyu cevaplamalı:
ali Çoban'ın 15 Eylül'e kadar hakediş olmayan günlerini listele?
Aklıma bişey gelmedi, sizlerin fikirlerini sorayım dedim.
işlem yapılmayan günleri bul diye bir sorgu?
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 163
- Kayıt: 11 Eki 2005 10:44
- İletişim:
Aşağıdaki sp işinizi görür sanırım
Kod: Tümünü seç
CREATE PROCEDURE SP_TARIHBUL
RETURNS (
OTARIH DATE)
AS
DECLARE VARIABLE BASTAR DATE;
DECLARE VARIABLE FARK INTEGER;
DECLARE VARIABLE SAY INTEGER=0;
DECLARE VARIABLE CNT INTEGER;
begin
/* Procedure Text */
select max(tarih)-min(tarih),min(tarih) from hakedis into :FARK,:BASTar;
while (:SAY<:FARK) do begin
otarih=:BASTAR+:SAY;
select count(*) from hakedis where tarih=:otarih into :cnt;
if (:cnt=0) then suspend;
SAY=:SAY+1;
end
end
Delphi tarafta yapacaksan yukarıdakilere benzer şekilde önce istediğin tarihler arasındaki kayıtları bulur, daha sonra da istediğin tarihler arasındaki günlerle dolduracağın bir dizi değişkenine query yi baştan sona taratırken hangi gün var ise dizide bulup işaretleyip daha sonra da işaretsizleri listeletebilirsin 

Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kod: Tümünü seç
select distinct tarih from tarihler
where tarihler.tarih not in(select hakedis.tarih from hakedis)
