- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
SELECT [Worker_list].[Id] ,
[Worker_list.Post_adress] ,
[Worker_list.Ident_fiscal] ,
[Worker_list.VacationDay] ,
[Worker_list].[Name_worker] ,
[Worker_list].[Name] ,
[Worker_list].[Firstname] ,
[Worker_list].[Middlenamme] ,
[Worker_list].[Табельний номер] ,
[Worker_list].[workfrom] AS workfromtable,
(SELECT MIN([time_list].[begin_date])
FROM [time_list]
WHERE [time_list].[worker]=[worker_list].[id]
) AS accountfrom,
IIF
(
ISNULL([workfromtable]),[accountfrom],[workfromtable]
) AS workfrom ,
[Worker_list].[startstockdate] AS startstockdatetable,
IIF
(
ISNULL([startstockdatetable]),[accountfrom],[startstockdatetable]
) AS startstockdate ,
[Worker_list].[startaccrualday] AS startaccrualdaytable,
[Worker_list].[startusedday] AS startuseddaytable ,
IIF
(
ISNULL([startaccrualdaytable]),0,[startaccrualdaytable]
) AS Startaccrualday,
IIF
(
ISNULL([startuseddaytable]),0,[startuseddaytable]
) AS startusedday,
(SELECT MIN([calendar_all].[Дата])
FROM calendar_all
) AS Todayis ,
SUM(DATEDIFF("d",[Chas]![Date Begin],DATEADD("d",1,[Chas]![Date end]))) AS UsedDayAfterTable,
IIF
(
ISNULL([useddayaftertable]),0,[useddayaftertable]
) AS UsedDayAfter,
(SELECT SUM (DATEDIFF("d",Chas.[Date Begin], DATEADD("d",1,Chas.[Date End])))
FROM Worker_list AS Worker_list_1
INNER JOIN (Reason_list
INNER JOIN Chas
ON Reason_list.Id = Chas.Reason)
ON Worker_list_1.Id = Chas.Worker
WHERE Reason_list.List =0
AND Worker_list.Id =Worker_List_1.Id
AND chas.[date end] <=
(SELECT MIN([calendar_all].[Дата])
FROM calendar_all
)
) AS timelossafterbeforetable,
(SELECT SUM (DATEDIFF("d",Chas.[Date Begin], DATEADD("d",1,
(SELECT MIN([calendar_all].[Дата])
FROM calendar_all
))))
FROM Worker_list AS Worker_list_1
INNER JOIN (Reason_list
INNER JOIN Chas
ON Reason_list.Id = Chas.Reason)
ON Worker_list_1.Id = Chas.Worker
WHERE Reason_list.List =0
AND Worker_list.Id =Worker_List_1.Id
AND chas.[date begin] <
(SELECT MIN([calendar_all].[Дата])
FROM calendar_all
)
AND chas.[date end] >
(SELECT MIN([calendar_all].[Дата])
FROM calendar_all
)
) AS timelossaftertable,
IIF
(
ISNULL([timelossafterbeforetable]),0,[timelossafterbeforetable]
) AS timelossafterbefore,
IIF
(
ISNULL([timelossaftertable]),0,[timelossaftertable]
) AS timelossafter,
DATEDIFF("d",[startstockdate],[todayis])-[timelossafterbefore]-[timelossafter] AS workoffafter ,
INT([workoffafter] /365*
IIF
(
ISNULL([Worker_list].[VacationDay]),GetVacationDayCount(),[Worker_list].[VacationDay]
)
) AS accrualdayafter,
DATEDIFF("d",[workfrom],[todayis]) AS workoffall ,
[Startaccrualday] -[startusedday]+[accrualdayafter] AS accrualdayall ,
[accrualdayafter] +[startaccrualday] AS accrualday ,
[startusedday] +[useddayafter]-StateHoliDay AS usedday ,
[accrualday] -[usedday] AS unusedday ,
DATEADD("d",INT([usedday]/
IIF
(
ISNULL([Worker_list].[VacationDay]),GetVacationDayCount(),[Worker_list].[VacationDay]
)
*365)+[timelossafterbefore]+[timelossafter],[workfrom]) AS Usedto,
жаль запрос зтот весь не уместился.......
когда мне предстоит внести изменения в зтот запрос, то пол дня может уйти на разборку..
Топик показывает отличный пример говноверстки.
от такой маленький запросик.. продолжение....
*365)+[timelossafterbefore]+[timelossafter],[workfrom]) AS Usedto,
(SELECT SUM (StateHoliDay)
FROM StateHoliChas
WHERE StateHoliChas.WORKER = WORKER_LIST.ID
) AS StateHoliDayTable,
IIF
(
StateHoliDayTable IS NULL,0,StateHoliDayTable
) AS StateHoliDay
FROM Worker_list
LEFT JOIN VacationList
ON [Worker_list].[Id]=[VacationList].[Worker]
GROUP BY [Worker_list].[Id] ,
[Worker_list].[Name_worker] ,
[Worker_list].[Name] ,
[Worker_list].[Firstname] ,
[Worker_list].[Middlenamme] ,
[Worker_list].[Табельний номер],
[Worker_list].[workfrom] ,
[Worker_list].[startstockdate] ,
[Worker_list].[startaccrualday],
[Worker_list].[startusedday] ,
[Worker_list].[VacationDay] ,
[Worker_list.Post_adress] ,
[Worker_list.Ident_fiscal];
.... жесть.... я однажды что-то подобное сначала на M$$QL, потом посмотрел на это дело и нахер переписал с нуля используя временные таблицы. Но это жесть, господа =)
это писал человек?
оторвать!!! )))
MINDFUCK!