Merhaba;
Access'de basit bir program yapmaya çalışıyorum. Yaptığım programda çalışan sayılarının durumu raporlanacak. Ekte gönderdiğim resimde olduğu gibi 3 farklı kampüs ve 3 farklı vardiya var. Kampüslerden biri bir diğerine eleman gönderdiğinde gönderilen miktar bilgisinin sorgu ile hangi kampüsten kaç eleman geldiğini raporlamak istiyorum...
Örneğin;
Kampüs Adı Tarih Vardiya K1'e Gönderilen K2'ye Gönderilen K3'Gönderilen K1'den Gelen K2'den Gelen K3'den Gelen
Kampüs 1 01.12.20 08:00-16:00 0 1 2 0 5 4
Kampüs 2 01.12.20 08:00-16:00 5 0 3 1 0 6
Kampüs 3 01.12.20 08:00-16:00 4 6 0 2 3 0
Sorgunun tasarımı için desteğinizi rica ederim...
Çalışmanızı eklemeniz çözümü bulmayı kolaylaştırır
Iyi çalışmalar.
(02/12/2020, 12:10)berduş yazdı: Çalışmanızı eklemeniz çözümü bulmayı kolaylaştırır
Iyi çalışmalar.
Access dosyasını ilk mesaja ekledim
Merhaba @Mr.Midnaight.
Kod:
SELECT tbl_AnaTablo.Kampus, tbl_AnaTablo.Tarih, tbl_AnaTablo.Vardiya, tbl_AnaTablo.K1Gonderilen, tbl_AnaTablo.K2Gonderilen, tbl_AnaTablo.K3Gonderilen
FROM tbl_AnaTablo
ORDER BY tbl_AnaTablo.Tarih;
sorgusu tarih sırası ile kampüs ve gönderilen personel sayısını sıralar. Raporlama mantığınızı tam anlamamış olmakla beraber yukarıdaki sorguyu sorgu tasarımında
Sql görünümünde yapıştırıp çalıştırın. İstediğiniz bu ise işinize yarayacaktır, daha spesifik bir çalışma için amacınızı daha net detaylar ile ifade etmelisiniz.
(02/12/2020, 13:19)atoykan yazdı: Merhaba @Mr.Midnaight.
Kod:
SELECT tbl_AnaTablo.Kampus, tbl_AnaTablo.Tarih, tbl_AnaTablo.Vardiya, tbl_AnaTablo.K1Gonderilen, tbl_AnaTablo.K2Gonderilen, tbl_AnaTablo.K3Gonderilen
FROM tbl_AnaTablo
ORDER BY tbl_AnaTablo.Tarih;
sorgusu tarih sırası ile kampüs ve gönderilen personel sayısını sıralar. Raporlama mantığınızı tam anlamamış olmakla beraber yukarıdaki sorguyu sorgu tasarımında Sql görünümünde yapıştırıp çalıştırın. İstediğiniz bu ise işinize yarayacaktır, daha spesifik bir çalışma için amacınızı daha net detaylar ile ifade etmelisiniz.
Merhaba sayın atoykan;
İstemiş olduğum sorgu göndermiş olduğunuz sorgu tasarımındaki gibi değil. Örnek olarak ne istediğimi ilk mesajımdaki resimde anlatmaya çalıştım. Detaylandıracak olursak;
Kampüs 1, 01.12.2020 tarihinde 08:00-16:00 vardiyasında Kampüs 2'ye elaman gönderdiğinin bilgisini veri olarak girdiğinde sorguda Kampüs 2'nin 01.12.2020 tarihinde 08:00-16:00 vardiyası olduğu satırda Kampüs 1'den Kampüs 2'ye kaç elaman gönderildiğini görebilmek istiyorum
Önce SqlBilesik isminde bileşik sorgusu oluşturun
SqlBilesik sorgusunun
Sql kodu:
SELECT tbl_AnaTablo.Kampus, tbl_AnaTablo.Tarih, tbl_AnaTablo.Vardiya, tbl_AnaTablo.K1Gonderilen As Gonderilen, "KAMPÜS 1" as GKampus
FROM tbl_AnaTablo
union all
SELECT tbl_AnaTablo.Kampus, tbl_AnaTablo.Tarih, tbl_AnaTablo.Vardiya, tbl_AnaTablo.K2Gonderilen As Gonderilen, "KAMPÜS 2" as GKampus
FROM tbl_AnaTablo
UNION ALL SELECT tbl_AnaTablo.Kampus, tbl_AnaTablo.Tarih, tbl_AnaTablo.Vardiya, tbl_AnaTablo.K3Gonderilen As Gonderilen, "KAMPÜS 3" as GKampus
FROM tbl_AnaTablo;
daha sonrada aşağıdaki gibi bir çapraz sorgu
TRANSFORM Sum(SqlBilesik.Gonderilen) AS ToplaGonderilen
SELECT tbl_AnaTablo.Kampus, tbl_AnaTablo.Tarih, tbl_AnaTablo.Vardiya, tbl_AnaTablo.K1Gonderilen, tbl_AnaTablo.K2Gonderilen, tbl_AnaTablo.K3Gonderilen
FROM tbl_AnaTablo INNER JOIN SqlBilesik ON (tbl_AnaTablo.Vardiya = SqlBilesik.Vardiya) AND (tbl_AnaTablo.Tarih = SqlBilesik.Tarih) AND (tbl_AnaTablo.Kampus = SqlBilesik.GKampus)
WHERE (((SqlBilesik.Gonderilen)<>0))
GROUP BY tbl_AnaTablo.Kampus, tbl_AnaTablo.Tarih, tbl_AnaTablo.Vardiya, tbl_AnaTablo.K1Gonderilen, tbl_AnaTablo.K2Gonderilen, tbl_AnaTablo.K3Gonderilen
PIVOT SqlBilesik.Kampus;
dilerim işinize yarar