Так у меня есть таблица, которая будет определять код региона в виде отделения В зависимости от Месяц,
позволяет сказать, что от January to february it's Region code would be 1,
from February to March it would be 2
и for the month of april upto date would be 3
Выбор конкретных данных в месяц
так вот образец внешнего вида таблицы
У меня есть код, который получает данные из таблицы, но я хочу добиться того, что если LoanD ate из выбранных Данных находится в Датах выше (между fld_Datefrom и fld_Dateto), он будет использовать fld_BranchRegion, который указан, как указано выше. (EG. Loandate на сегодняшний день 2013-01-12 00:00:00
он будет использовать RegionCode 4A, как указано выше, и если данные 2013-02-04 00:00:00
он будет использовать код региона
здесь код я использую
SELECT
TE.LOAN
,bp.REGION
,BP.ID
,TE.AMOUNT
,te.ID
FROM #TrackExpired TE
inner join Transactions.TBLMAIN PM
on TE.ID = PM.ID
inner join #track BP
on BP.ID=cast(TE.ID/1000000000000 as decimal(38,0))
WHERE ((cast(TE.EXPIRATION as date) < cast(TE.newloandate as date))
OR(TE.NewLoanDate is null and (cast(TE.EXPIRATION as date) < cast(PM.REDEEMED as date))) or ((TE.NewLoanDate is null and PM.REDEEMED is null) and (PM.STATUS = 7 or PM.STATUS = 5)) )
проблемы с этим состоит в том, что он генерирует повторяющиеся значения, так у меня есть 3 мест где даты в #track таблицы номер данных также выведенная 3 раза с различным кодом региона !!
Вместо того, чтобы выводить их я хотел бы для того чтобы достигнуть по выбору код региона от ** # трек на основе даты займа данных. **
я просто хочу, чтобы добиться того, что вместо того, чтобы выводить все региональный код, он просто использовал бы код региона, который находится между диапазонами, основанными на таблице #track.
Любая помощь? или другого подхода? Спасибо!. извините im новое для SQL.
EDIT вот код для создания временных таблиц.
#trackexpired
SELECT PH.ID
,PH.LOAN
,PH.EXPIRATION
,PH.AMOUNT
,(SELECT T3.LOAN FROM Transactions.HISTO T3 INNER JOIN
(
SELECT MIN(T2.ID) as pawnhisto
FROM Transactions.HISTO T2
WHERE T2.ID > PH.ID
AND PH.ID = T2.ID
) T4
ON T4.pawnhisto = T3.ID
)as 'NewLoanDate'
INTO #TrackExpired
FROM Transactions.HISTO PH
INNER JOIN Transactions.MAIN PM
ON PM.ID=PH.ID
WHERE YEAR(PH.LOAN) = @YEAR
#track
Select bt.CODE
,bp.ID
,AREA
,REGION
,NCODE
,FROM
,isnull(fld_Dateto,GETDATE()) as fld_Dateto
into #sort
from Transactions.tbl_BranchTracking bt
inner join Reference.tbl_BranchProfiles bp
on bt.CODE = bp.CODE
Select * into #track from #sort
where @YEAR >= year(FROM)
and
@YEAR <= year(fld_Dateto)
Это не дубликаты. Посмотрите на значения поля PawnMainID; все они уникальны. –
@BillStidham это просто образец. Если вы прокрутите их, набор из 4A будет таким же, как и установленные данные с 3 в качестве регионального кода. это просто примеры скриншотов – user2705620
@BillStidham, пожалуйста, еще раз проверьте вопрос, который я редактировал скриншоты. – user2705620