Вы могли выполнить все свои запросы против представления, которое содержит WHERE IS_DELETED='0'
пункт.
Я не пользователь LFE, но есть руководство пользователя в исходное дерево. Прочитав это, я бы предположил, что это примерно так:
(let ((A 2))
(let ((Pid (spawn (lambda ()
(receive
(B (when (is_integer B))
(: io format "Added: ~p~n" (list (+ A B))))
(_ nan))))))
(! Pid 5)))
Но я, скорее всего, совершил ошибку, поскольку я даже не оценил это в LFE.
Сначала построили таблицу подсчета. http://www.sqlservercentral.com/articles/T-SQL/62867/ тогда получите то, что хотите ..
http://www.sqlservercentral.com/Forums/Topic515226-1291-1.aspx
DECLARE @DateStart DATETIME,
@DateEnd DATETIME
SELECT @DateStart = '20080131',
@DateEnd = '20101201'
SELECT DATEADD(wk,DATEDIFF(wk,6,DATEADD(mm,DATEDIFF(mm,-1,DATEADD(mm,t.N-1,@DateStart)),-1)),6)
FROM dbo.Tally t
WHERE t.N <= DATEDIFF(mm,@DateStart,@DateEnd)
Альтернативный подход, заимствованный из практики хранения данных. Создайте таблицу измерения даты и предварительно загрузите ее примерно на 10 лет.
TABLE dimDate (DateKey, FullDate, Day, Month, Year, DayOfWeek,
DayInEpoch, MonthName, LastDayInMonthIndicator, many more..)
Самый простой способ заполнить dimDate
- провести полдня с Excel, а затем импортировать оттуда в БД . Наполовину приличная таблица dimDate
имеет более 50 столбцов - все, что вы когда-либо хотели знать о дате.
После этого вопрос становится примерно таким:
SELECT max(FullDate)
FROM dimDate
WHERE DayOfWeek = 'Sunday'
AND Month = 11
AND Year = 2009;
По сути, все, относящиеся к дате запросы становятся проще.
DECLARE @LastDateOfMonth smalldatetime
SELECT @LastDateOfMonth = DATEADD(month, DATEDIFF(month, -1, GETDATE()), 0) -1
Select DATEADD(dd,-( CASE WHEN DATEPART(weekday,@LastDateOfMonth) = 1 THEN 0 ELSE DATEPART(weekday,@LastDateOfMonth) - 1 END ),@LastDateOfMonth)
Святая корова, это уродливо, но вот:
DECLARE @dtDate DATETIME
SET @dtDate = '2009-11-05'
SELECT DATEADD(dd, -1*(DATEPART(dw, DateAdd(day, -1, DateAdd(month, DateDiff(month, 0, @dtDate)+1, 0)))-1),
DateAdd(day, -1, DateAdd(month, DateDiff(month, 0, @dtDate)+1, 0)))
select next_day(last_day(sysdate)-7, 'Sunday') from dual