Skip to main content

AccessTr.neT


Access Sorgusunda En Büyük Tarihe Göre Tablodan Tekrar Eden Tanımlardan Birini Alma

Access Sorgusunda En Büyük Tarihe Göre Tablodan Tekrar Eden Tanımlardan Birini Alma

Çözüldü #1
Sayın Yetkili Merhaba,

Bilgi;
a) Çalışma tablosunda  -KISIM-, -SONUÇ- ve -YAPILDIĞI TARİH- vardır.
b) -KISIM- alanında birden fazla tekrar eden tanımlar vardır

SORGUDA Yapmak istediğim,
a) -KISIM- alanında tanımlı olanların -SONUÇ- alanındaki değeri "kalan" ve "yapıldı" ise sorgumda -SONUÇ- alanına "kalan" gelirken -YAPILDIĞI TARİH- alanıda boş gelsin
b) - KISIM- alanında tanımlı olandan -SONUÇ- hepsinin "yapıldı" ise -YAPILDIĞI TARİH- alanındaki en büyük tarih -YAPILDIĞI TARİH- alanına gelsin ve -SONUÇ- alanına "yapıldı" gelsin

Sorgumu incelerseniz, yapmak istediğim sorgumda sabitlediğim 10 adet tanımın gözükmesi ve bunların sonucu da yukarıda belirttiğim döngüye göre gelmesidir. burası hariç sorguda ihtiyaç duyacağım diğer alanların döngüsünü yaptım. burada  takıldım.
yardımlarınız için şimdiden teşekkür ederim. 
Saygılarımla.
.rar SORGU ÇALIŞMASI.rar (Dosya Boyutu: 25,63 KB | İndirme Sayısı: 4)
Cevapla
#2
Sorunuzdan anladıgım kadarıyla Aşagıdaki sorguyu yaptım,bakın lütfen

SELECT ÇALIŞMA.KISIM, ÇALIŞMA.SONUÇ, IIf([ÇALIŞMA]![YAPILDIĞI TARİH]>0,Max([ÇALIŞMA]![YAPILDIĞI TARİH]),"") AS [YAPILDIĞI TARİH], Date() AS BUGÜN, Date()-[YAPILDIĞI TARİH] AS FARK, IIf([ÇALIŞMA]![SONUÇ]=[KALAN],"İŞ EMRİ VAR",IIf([FARK]>=30,"İŞ EMRİ ÇIKARILMALI","İŞ EMRİ ÇIKARMA ZAMANI GELMEDİ")) AS AÇIKLAMA
FROM ÇALIŞMA
WHERE (((ÇALIŞMA.KISIM)="FIRIN TESİSİ İÇİN PERİYODİK İŞ EMRİ" Or (ÇALIŞMA.KISIM)="GENEL EKİPMANLAR İÇİN PERİYODİK İŞ EMRİ" Or (ÇALIŞMA.KISIM)="KAZAN TESİSİ İÇİN PERİYODİK İŞ EMRİ" Or (ÇALIŞMA.KISIM)="KIVIRMA TESİSİ İÇİN PERİYODİK İŞ EMRİ" Or (ÇALIŞMA.KISIM)="PAKETLEME TESİSİ İÇİN PERİYODİK İŞ EMRİ" Or (ÇALIŞMA.KISIM)="PALETLİ FIRIN TESİSİ İÇİN PERİYODİK İŞ EMRİ" Or (ÇALIŞMA.KISIM)="TASNİF TESİSİ İÇİN PERİYODİK İŞ EMRİ" Or (ÇALIŞMA.KISIM)="TEKNİK EKİPMAN TESİSİ İÇİN PERİYODİK İŞ EMRİ" Or (ÇALIŞMA.KISIM)="YAŞ ÇAY TESİSİ İÇİN PERİYODİK İŞ EMRİ" Or (ÇALIŞMA.KISIM)="PAKETLEME TESİSİ İÇİN PERİYODİK İŞ EMRİ"));

daha iyisi yapılır ancak belirttiğim gibi anladıgım buydu !.
Cevapla
#3
(02/12/2022, 11:54)C*e*l*o*y*c*e yazdı: Sorunuzdan anladıgım kadarıyla Aşagıdaki sorguyu yaptım,bakın lütfen

SELECT ÇALIŞMA.KISIM, ÇALIŞMA.SONUÇ, IIf([ÇALIŞMA]![YAPILDIĞI TARİH]>0,Max([ÇALIŞMA]![YAPILDIĞI TARİH]),"") AS [YAPILDIĞI TARİH], Date() AS BUGÜN, Date()-[YAPILDIĞI TARİH] AS FARK, IIf([ÇALIŞMA]![SONUÇ]=[KALAN],"İŞ EMRİ VAR",IIf([FARK]>=30,"İŞ EMRİ ÇIKARILMALI","İŞ EMRİ ÇIKARMA ZAMANI GELMEDİ")) AS AÇIKLAMA
FROM ÇALIŞMA
WHERE (((ÇALIŞMA.KISIM)="FIRIN TESİSİ İÇİN PERİYODİK İŞ EMRİ" Or (ÇALIŞMA.KISIM)="GENEL EKİPMANLAR İÇİN PERİYODİK İŞ EMRİ" Or (ÇALIŞMA.KISIM)="KAZAN TESİSİ İÇİN PERİYODİK İŞ EMRİ" Or (ÇALIŞMA.KISIM)="KIVIRMA TESİSİ İÇİN PERİYODİK İŞ EMRİ" Or (ÇALIŞMA.KISIM)="PAKETLEME TESİSİ İÇİN PERİYODİK İŞ EMRİ" Or (ÇALIŞMA.KISIM)="PALETLİ FIRIN TESİSİ İÇİN PERİYODİK İŞ EMRİ" Or (ÇALIŞMA.KISIM)="TASNİF TESİSİ İÇİN PERİYODİK İŞ EMRİ" Or (ÇALIŞMA.KISIM)="TEKNİK EKİPMAN TESİSİ İÇİN PERİYODİK İŞ EMRİ" Or (ÇALIŞMA.KISIM)="YAŞ ÇAY TESİSİ İÇİN PERİYODİK İŞ EMRİ" Or (ÇALIŞMA.KISIM)="PAKETLEME TESİSİ İÇİN PERİYODİK İŞ EMRİ"));

daha iyisi yapılır ancak belirttiğim gibi anladıgım buydu !.

Sayın yetkili merhaba, Öncelikle dönüş yaptığınız için teşekkür ederim.
Denedim şöyle hata veriyor,
"sorgunuz toplama işlevinin parçası olarak belirtilen 'KISIM' ifadesini içermiyor"
Max denemiştim bende aynı hatayı almıştım. acaba max sadece sayılarla mı alakalı ,işin içine  tarih girince mi  sorun oluyor diye düşünmüştüm. Başka bir kodla mı yapmamız gerekir.
Saygılarımla...
Son Düzenleme: 03/12/2022, 18:56, Düzenleyen: SELÇUK77. (Sebep: yanlış alana yazdığımdan)
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task