В моем отчете первая таблица, в которой я получаю данные из базы данных SQL Server. В этой таблице я создаю новый столбец с именем TYPEOFTRIP, который получен с использованием выражения CASE (я беру два столбца из базы данных ORIGIN, DESTINATION) на основе этих двух столбцов, я делаю CASE и создаю этот столбец (TYPEOFTRIP), и в основном я пишу (на север) , на юг, местный и т. д. c) Теперь в этом же отчете я попросил у меня другую таблицу, которая представляет собой общее количество типов поездок.
В настоящее время у меня есть 1 набор данных для этого отчета, я рассчитывал сохранить этот новый столбец в таблице #temp и сделать подсчет для этого (typeoftrip) = 'northbound', 'eastbound', 'southbound' и положить это во 2-й таблице в отчете, но я не могу заставить его работать. Можете ли вы направить меня.
это то, что у меня есть в моем наборе данных
declare @d1 as datetime= case when @DataFor='Last24Hrs' then CONVERT(date,DATEADD(day, -1, dateadd(hour,-2,getdate())),101) when @DataFor= 'SpecificDate' then @FromDate end
declare @d2 as datetime= case when @DataFor='Last24Hrs' then CONVERT(VARCHAR(10), dateadd(hour,-2,getdate()), 101) + ' 23:59' when @DataFor='SpecificDate' then @ToDate + ' 23:59' end
SELECT
q.folio,
q.itemcode,
ltrim(rtrim(convert(varchar,day(q.oactualdepart))+'-'+CAST(q.oactualdepart AS CHAR(3)))) as Date,
convert(date,q.oacualdepart) [date2],
rtrim(ltrim(q.roueNo)) as Route,
ltrim(rtrim(q.trailer)) [trailer],
rtrim(ltrim(CASE WHEN q.spec ='HM' THEN 'Y' ELSE 'N' END)) as hazmat,
case when q.TollYN='YES' then 'Y' else 'N' end as Toll,
ltrim(rtrim(q.LoadNumber)) as [File],
ltrim(rtrim(q.opname)) [operator],
rtrim(ltrim(q.tractor)) [tractor],
q.trailertype as [S/C/B],
'' as [Plan],
q.Origin,
convert(char(5), q.oActualDepart, 108) [HrsOut],
CONVERT(char(5),initdate,108) as InRed,
convert(char(5),q.mxCustomsInspDep,108) as OutRed,
convert(char(5), q.processUS, 108) as CustOut,
q.destination,
convert(char(5), q.dactualarrival, 108) as HrsIn,
convert(char(5), q.dactualarrival-q.oactualdepart, 108) as XINGTIME ,
convert(char(5), q.m[enter image description here][1]CInspDep - initDate, 108) as RedTime,
ltrim(rtrim(tblissues.description)) as ISSUE,
q.tractorCarrier,
tc.CarrierName,
q.tractor+'-'+LEFT(tc.carriername,2) as [Unit Carrier],
CASE WHEN tc.CarrierName='ABCD' Then 'DED' ELSE 'FUM' END as [type],
DATEPART (week,q.oactualdepart) AS Week,
LEFT(DATEPART(minute,q.dactualarrival-q.oactualdepart)/60.00 + DATEPART (hour,q.dactualarrival-q.oactualdepart),3) as xbtime,
ff.frecfolio as frecuenciaf,
ft.frectrailer as frecuenciat,
CASE WHEN q.trailer='B' AND q.origin IN ('A','B','C') THEN 'LOCAL'
WHEN ff.frecfolio = 1 AND q.destination='YARD' THEN 'YARD'
WHEN ff.frecfolio = 1 AND q.origin IN ('C','D','E') AND q.destination<>'YARD' THEN 'NORTHBOUND'
WHEN ff.frecfolio = 1 AND q.destination='E' THEN 'WESTBOUND'
WHEN ff.frecfolio > 1 AND q.destination IN ('A','B','C') THEN 'EASTBOUND'
WHEN ff.frecfolio > 1 AND q.destination='X' THEN 'SOUTHBOUND'
WHEN ff.frecfolio > 1 AND q.origin IN ('D','E','F') AND q.destination='YARD' THEN 'E SOUTHBOUND'
WHEN ff.frecfolio > 1 AND q.origin='W' THEN 'E EASTBOUND'
ELSE ''END typeoftrip
FROM
qrydispatchview q
inner join (SELECT folio, COUNT(*) frecfolio FROM qrydispatchview WHERE convert(date,oactualdepart) BETWEEN @d1 and @d2 GROUP BY folio ) ff on ff.folio=q.folio
inner join (SELECT trailer, COUNT(*) frectrailer FROM qrydispatchview WHERE convert(date,oactualdepart) BETWEEN @d1 and @d2 GROUP BY trailer) ft on ft.trailer=q.trailer
left join tblCarriers tc on q.tractorCarrier=tc.id
left join tblupninspections on q.Id=tblupninspections.legid
left join tblissues on q.id_issue=tblissues.id_issue
where deleted <> 1 and customer='ABC'
and convert(date,q.oactualdepart) between @d1 and @d2 /*and convert(date,getdate())*/ and itemcode in ('A','B','C')
order by 1