Skip to main content

AccessTr.neT


Access Çapraz İlişkili Kriterli Sorgu

Access Çapraz İlişkili Kriterli Sorgu

Çözüldü #1
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...
.zip Daily_Headcount.zip (Dosya Boyutu: 2,41 MB | İndirme Sayısı: 5)
Son Düzenleme: 02/12/2020, 12:50, Düzenleyen: Mr.Midnight.
Cevapla
#2
Çalışmanızı eklemeniz çözümü bulmayı kolaylaştırır
Iyi çalışmalar.
Cevapla
#3
(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
Cevapla
#4
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.
Cevapla
#5
(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
Cevapla
#6
Ö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
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task