Никогда не стоит ставить пробелы в именах, будь то таблица или столбец; и при этом вы не должны использовать SQL Ключевые слова в именах столбцов вашего дела, таких как Case или DEC; скорее используйте подчеркивание вместо места. Мой ответ, однако, включает в себя необходимые скобки из-за ваших пробелов.
Select * from [LN DETAILS]
where [LN DETAILS].[ACTG PRD]=(
select Str(DATEPART(yyyy,GETDATE()),4)+ case when DATEPART(mm,GETDATE())<10
Then Str(0,1)+Str(DATEPART(mm,GETDATE()),1)
Else Str(DATEPART(mm,GETDATE()),2) end)
and [LN DETAILS].[DEC]='Flexible'
Обновление сверху, чтобы не возвращать идентификаторы Case_ID с предыдущим ONLY месяцем. Безумно долго, потому что ваш dateField - текст.
Select * from [LN DETAILS] t1
where not exists (
select * from [LN DETAILS] t2
where t1.[Case ID]=t2.[Case ID]
and t1.[ACTG PRD]=(
select Str(DATEPART(yyyy,GETDATE()),4)+ case when DATEPART(mm,GETDATE())<10
Then Str(0,1)+Str(DATEPART(mm,GETDATE()),1)
Else Str(DATEPART(mm,GETDATE()),2) end)
and t2.[ACTG PRD]=(
select Str(DATEPART(yyyy,Dateadd(month,-1,getdate())),4)+ case when DATEPART(mm,Dateadd(month,-1,getdate()))<10
Then Str(0,1)+Str(DATEPART(mm,Dateadd(month,-1,getdate())),1)
Else Str(DATEPART(mm,Dateadd(month,-1,getdate())),2) end) )
and t1.[ACTG PRD]=(
select Str(DATEPART(yyyy,GETDATE()),4)+ case when DATEPART(mm,GETDATE())<10
Then Str(0,1)+Str(DATEPART(mm,GETDATE()),1)
Else Str(DATEPART(mm,GETDATE()),2) end)
and t1.[DEC]='Flexible'