Tarih'ler içersindeki saat'ları gruplandırmak

1 2
01/11/2009, 12:28

x0914667

Ekteki dosyada her dakika veya 10 dakika'da bilgi
alıp kaydetdiğim bir programım var.
Yapmak istediğim şu;

Sorgu'yu çalıştırdığımda mesela;
01.09.2009 tarihi ile 20.09.2009 tarihleri arasındaki
kayıtların saat 17:00-22:00 veya 22:00-06:00 veya 06:00-17:00
arasındakileri gruplandırarak sorgulamasını ve her sorgudaki
satırların 1.önceki satırla farkını almak istiyorum.
Bir türlü istediğim gibi olmuyor.
Teşekkürler
Editosya ilave edildi.
01/11/2009, 15:13

ayhan2122

"Her sorgudaki
satırların 1.önceki satırla farkını almak" için yeni bir sorgu oluştur ve Sql görünümüne şunu yaz:
Kod:
SELECT ek1.ID, ek1.zaman, ek1.ek1_aktif_enerji, ek1.ek1_reaktif_enerji, ek1.ek1_aktif_guc, [ek1_aktif_guc]-DLookUp("[ek1_aktif_guc]","[ek1]","[ID] = " & [ID]-1 & "") AS Deyim1
FROM ek1
WHERE (((ek1.zaman) Between [Formlar]![ek1_KontrolFormu]![Ilk_Tarih] And [Formlar]![ek1_KontrolFormu]![Son_Tarih]));
incele.
01/11/2009, 22:22

x0914667

SQL ifadesinde hata veriyor.
02/11/2009, 11:51

ayhan2122

Sn x0914667 ;
Acaba yanlış mı kopyaladınız ?
Sizin kendi çalışmanıza uyguladığım Ek2 adlı sorguyu inceleyiniz.
02/11/2009, 14:46

x0914667

Hocam sorun çözüldü.Çift Tırnaklarda hata yapmışım.
Teşekkürler.Yalnız saat gruplandırmalarını nasıl yaparız.
02/11/2009, 18:05

ayhan2122

Gönderdiğim örnekteki ek2 sorgusunu tasarımda açıp yeni bir alana ;

Kod:
Grup: IIf(Format$([zaman];"hh")>=17 And Format$([zaman];"hh")<22;"17-22";IIf(Format$([zaman];"hh")>=6 And Format$([zaman];"hh")<17;"06-17";"22-06"))

yazın. Yeni bir sorgu daha oluşturup Sql görünümüne;

Kod:
SELECT DISTINCTROW Format$(ek2.zaman,'dd/mm/yyyy') AS ZamanGün, ek2.Grup, Last(ek2.ek1_aktif_enerji) AS Sonek1_aktif_enerji, Last(ek2.ek1_reaktif_enerji) AS Sonek1_reaktif_enerji, Last(ek2.ek1_aktif_guc) AS Sonek1_aktif_guc, Sum(ek2.Deyim1) AS ToplaDeyim1
FROM ek2
GROUP BY Format$(ek2.zaman,'dd/mm/yyyy'), ek2.Grup;
yazın ve sorguyu çalıştırın.
1 2