Не слушайте этих парней. Вы действительно можете анализировать контекстно-свободные грамматики с регулярным выражением, если вы разбиваете задачу на более мелкие части. Вы можете сгенерировать правильный шаблон с помощью скрипта, который выполняет каждый из этих действий, чтобы:
Я еще не выяснил последнюю часть, но я знаю, что приближаюсь. Мой код продолжает бросать CthulhuRlyehWgahnaglFhtagnException
в последнее время, поэтому я собираюсь передать его на VB 6 и использовать On Error Resume Next
. Я обновлю код, как только я исследую эту странную дверь, которая только что открылась в стене. Хмм.
P.S. Пьер де Ферма также выяснил, как это сделать, но край, который он писал, был недостаточно большим для кода.
Попробуй это.
IF OBJECT_ID('tempdb..#Production') IS NOT NULL DROP TABLE #Production
IF OBJECT_ID('tempdb..#Bought') IS NOT NULL DROP TABLE #Bought
CREATE table #Production(R_NO int,ProductionDate datetime,ProductionAmount float)
CREATE table #Bought(R_NO int,Boughtdate datetime,Boughtamount float)
insert into #Production(ProductionDate,ProductionAmount,R_NO)
select p.date ProductionDate,sum(Amount) ProductionAmount,row_number()over (order by p.date) R_NO
from Production P
join Sales s on p.date=S.date-1
where orhsysid=1
group by p.date
declare @loop int,@ProdDate datetime
select @loop =max(R_NO) from #Production
while (1<=@loop)
begin
select @ProdDate=ProductionDate from #Production where r_no=@loop
insert into #Bought(Boughtdate,Boughtamount,R_NO)
select Date,Sum(Amount),@loop R_NO from Bought where date=(
select max(date) from bought B
where B.Date<@ProdDate)
group by Date
set @loop=@loop-1
end
select ProductionDate,ProductionAmount,Boughtdate,Boughtamount from #Bought B
join #Production p on B.R_NO=P.R_NO