Kıymetli hocalarım merhaba,
Ekli tabloda personel ve personelin bulunduğu ekip adı bulunmakta;
burada bir ekip içinde birden fazla personel bulunmakta;
Tabloda dikey halde bu durum belirtilmiştir.
ekli sorguda bir ekip içindeki personelleri yatay olarak almak için nasıl bir düzenleme yapılabilir?
Ekteki örnek sorguda
- 1 yazan yeren ekibin 1. personeli
- 2 yazan yeren ekibin 2. personeli
- 3 yazan yeren ekibin 3. personeli
- 4 yazan yeren ekibin 4. personeli
gibi ...
Kod:
SELECT DISTINCT Tablo1.team, 1 AS [Personel-1], 2 AS [Personel-2], 3 AS [Personel-3], 4 AS [Personel-4]
FROM Tablo1;
desteğiniz için teşekkürler,
iyi akşamlar.
SELECT
t1.team,
MAX(IIF(t2.rn=1, t2.user, NULL)) AS Personel_1,
MAX(IIF(t2.rn=2, t2.user, NULL)) AS Personel_2,
MAX(IIF(t2.rn=3, t2.user, NULL)) AS Personel_3,
MAX(IIF(t2.rn=4, t2.user, NULL)) AS Personel_4
FROM tablo1 AS t1
INNER JOIN
(SELECT team, user,
(SELECT COUNT(*) FROM tablo1 AS t2
WHERE t2.team = t1.team AND t2.id <= t1.id) AS rn
FROM tablo1 AS t1) AS t2
ON t1.team = t2.team
GROUP BY t1.team;
Anladığım kadarıyla team alanında yazan verileri id sırasına göre aktarmak istediniz. Bu kod ile id sırasına göre veriler sıralanmaktadır.
(11/02/2025, 01:18)aydin5353 yazdı: SELECT
t1.team,
MAX(IIF(t2.rn=1, t2.user, NULL)) AS Personel_1,
MAX(IIF(t2.rn=2, t2.user, NULL)) AS Personel_2,
MAX(IIF(t2.rn=3, t2.user, NULL)) AS Personel_3,
MAX(IIF(t2.rn=4, t2.user, NULL)) AS Personel_4
FROM tablo1 AS t1
INNER JOIN
(SELECT team, user,
(SELECT COUNT(*) FROM tablo1 AS t2
WHERE t2.team = t1.team AND t2.id <= t1.id) AS rn
FROM tablo1 AS t1) AS t2
ON t1.team = t2.team
GROUP BY t1.team;
Anladığım kadarıyla team alanında yazan verileri id sırasına göre aktarmak istediniz. Bu kod ile id sırasına göre veriler sıralanmaktadır.
Hocam çok teşekkür ederim,
benzeri konuda ekli dosyada yapmaya çalıştığım bir sorgu daha var, bunu kısmen oluşturdum, yalnız tam olmadı
burada en soldaki "Rapor ekibi" olmayacak, diğer sütunlarda doludan doşa doğru sıralanacak,
özetle dolu ekipler en üstte, boş olanlar en altta olacak şekilde,
Ekli ekran görüntüsünde ifade etmeye çalıştım ama;
Kod:
TRANSFORM tbl_Orders.RaporEkibi
SELECT tbl_Orders.RaporEkibi
FROM tbl_Orders
WHERE (((tbl_Orders.Rapor)="X"))
GROUP BY tbl_Orders.RaporEkibi
PIVOT tbl_Orders.RaporTuru;
yardımcı olursanız sevinirim.
tekrar teşekkürler,
iyi çalışmalar dilerim..
(11/02/2025, 14:15)truhi yazdı: (11/02/2025, 01:18)aydin5353 yazdı: SELECT
t1.team,
MAX(IIF(t2.rn=1, t2.user, NULL)) AS Personel_1,
MAX(IIF(t2.rn=2, t2.user, NULL)) AS Personel_2,
MAX(IIF(t2.rn=3, t2.user, NULL)) AS Personel_3,
MAX(IIF(t2.rn=4, t2.user, NULL)) AS Personel_4
FROM tablo1 AS t1
INNER JOIN
(SELECT team, user,
(SELECT COUNT(*) FROM tablo1 AS t2
WHERE t2.team = t1.team AND t2.id <= t1.id) AS rn
FROM tablo1 AS t1) AS t2
ON t1.team = t2.team
GROUP BY t1.team;
Anladığım kadarıyla team alanında yazan verileri id sırasına göre aktarmak istediniz. Bu kod ile id sırasına göre veriler sıralanmaktadır.
Hocam çok teşekkür ederim,
benzeri konuda ekli dosyada yapmaya çalıştığım bir sorgu daha var, bunu kısmen oluşturdum, yalnız tam olmadı
burada en soldaki "Rapor ekibi" olmayacak, diğer sütunlarda doludan doşa doğru sıralanacak,
özetle dolu ekipler en üstte, boş olanlar en altta olacak şekilde,
Ekli ekran görüntüsünde ifade etmeye çalıştım ama;
Kod:
TRANSFORM tbl_Orders.RaporEkibi
SELECT tbl_Orders.RaporEkibi
FROM tbl_Orders
WHERE (((tbl_Orders.Rapor)="X"))
GROUP BY tbl_Orders.RaporEkibi
PIVOT tbl_Orders.RaporTuru;
yardımcı olursanız sevinirim.
tekrar teşekkürler,
iyi çalışmalar dilerim..
Kıymetli Hocalarım merhaba,
konunun daha iyi anlaşılması bakımından bir
Excel dosyası oluşturdum.
Ulaşmak istediğim tabloyu ekli dosya "sorgu" sayfasında belirttim.
Bu durum sizler için fikir olacağı açısından paylaşmak istedim.
ilgi ve alakanız için şimdiden teşekkür ederim.
iyi pazarlar.
eğer raporturu sabitse - sadece "Bağımsız Denetim","Tam Tasdik","Kdv İade","Diğer Raporlar" - işe yarar bir yöntem var. daha doğrusu yapay zekanın önerisi
ama maalesef sadece sabit sayıda ise işe yarıyor.
mesela son sorgu kodu
TRANSFORM First(r.RaporEkibi) AS FirstOfRaporEkibi
SELECT r.Sira
FROM qryRankedRaporEkibi AS r
GROUP BY r.Sira
PIVOT r.RaporTuru In ("Bağımsız Denetim","Tam Tasdik","Kdv İade","Diğer Raporlar");
burada IN kullanıldığı için
select raporturu from tablo group by falan denedim ama işe yaramadı
Bir de siz bu sorguyu nerede kullanacaksınız?
Form yada rapor gibi bir yerde kullanacaksanız
Vba kodları kullanarak değişken sorgular yada geçici tablo oluşturup o tabloya ekleyerek olabilir belki!