Şirket politikaları nedeniyle çalıştığım asıl sorguyu veremem ancak arıza ve genel fikir. Bir çalışanın çalışıp çalışmadığı ve çalışanın çalıştığı her gün için kayıt tutan bir katılım kaydımız vardır. Bu ve bu tarih arasında çalışanın 5 vardiya çalıştığı ile ilgili bir özet yapmaya çalışıyorum. Oturduğum problem, özel bir çalışanın işyerinde A'da 2 gün çalıştığı ve daha sonra işyerine taşındığıdır. B işyerinde birkaç gün sonra işçinin daha sonra A işyerine devredilmişti.Katılım özet raporu rapora
Benim girişimim, çalışanın 1-Ocak'ta işyerinde A çalışmaya başladığını ve sadece 2 çalışma vardiyasıyla 10-Ocak'ta sona erdiğini gösterdi. Çalışma yerindeki bir grubum var ve başlangıç ve bitiş tarihleri min ve maksimum seçimdir.
SELECT att.Employee, att.Workplace, dte.BeginDate, dte.EndDate, shf.WorkShift FROM
(SELECT * FROM Attendance WHERE WorkDate BETWEEN '1-Jan' AND '30-Jan') att
CROSS APPLY (SELECT COUNT(Shift) WorkShift FROM Attendance WHERE WorkDate BETWEEN '1-Jan' AND '30-Jan' AND Employee = att.Employee AND WorkPlace = att.WorkPlace AND Shift = 'Worked') shf
CROSS APPLY (SELECT MAX(WorkDate) BeginDate, MIN(WorkDate) EndDate FROM Attendance WHERE WorkDate BETWEEN '1-Jan' AND '30-Jan' AND Employee = att.Employee AND WorkPlace = att.WorkPlace) dte
Yani kayıtları böyle görünmelidir bu çalışanların
(çok kötü grid için üzgünüm, ben güzel görünmesi için nasıl bilmiyorum, bunu daha iyi bakmak için düzenlemek için daha fazla bekliyoruz)| Name | Workplace | beginDate | endDate | WorkShift |
| Jane | WorkPlaceA | 1-Jan | 2-Jan | 2 |
| Jane | WorkPlaceB | 3-Jan | 8-Jan | 5 |
| Jane | WorkPlaceA | 9-Jan | 10-Jan | 2 |
katılım tablo sana CTE'ler kullanarak gerçekleştirebilirsiniz inanıyoruz bu
| Name | Workplace | Date | Shift |
| Jane | WorkplaceA | 1-Jan | Worked |
| Jane | WorkplaceA | 2-Jan | Worked |
| Jane | WorkplaceB | 3-Jan | Worked |
| Jane | WorkplaceB | 4-Jan | Worked |
| Jane | WorkplaceB | 5-Jan | Worked |
| Jane | WorkplaceA | 6-Jan | Absent |
| Jane | WorkplaceA | 7-Jan | Absent |
| Jane | WorkplaceA | 8-Jan | Worked |
| Jane | WorkplaceB | 9-Jan | Worked |
| Jane | WorkplaceB | 10-Jan | Worked |
@Tanner sayılmaz, ben eksik olduğunu fark olduğunu kısa sürede tekrar tekrar okumaya başladı. Hatırlattığın için teşekkürler –