0

私は3つのテーブルを持っています:

1) JCTransactions
Job         CostCode    Date        Amount
36801-001   01-150      1/8/2015    55.00
36801-001   02-240      2/6/2015    26.00

2) JCCostCode
Job         CostCode    Description
36801-001   01-000      Land
36801-001   01-150      Land Legal Fees
36801-001   02-000      Holding Costs
36801-001   02-240      Property Taxes

3) JCJob
Job         Description
36801-001   BusinessCenter1
36901-001   BusinessCenter2(NotYetStarted)

JCTransactions テーブルのすべてのレコードを表示するクエリを実行したいと考えていますが、ジョブの説明、コスト コードの説明、およびトップ レベルのコスト コードの説明が含まれています。

例えば:

Job         CostCode    Date        Amount  JobDesc         CostCodeDesc    TopLevelCostCode    TopLevelCodeDesc
36801-001   01-150      1/8/2015    55.00   BusinessCenter1 Land Legal Fees 01-000              Land
36801-001   02-240      2/6/2015    26.00   BusinessCenter1 Property Taxes  02-000              Holding Costs

TopLevelCostCode とその説明を結果に入れるのに問題があります。

これまでのところ、必要な最後の2列がないことを除いてうまく機能する私のコードは次のとおりです。

SELECT JCTRANSACTIONS.Job,
JCTRANSACTIONS.CostCode,
JCTRANSACTIONS.Date,
JCTRANSACTIONS.Amount,
JCJOB.Description,
JCCOSTCODE.Description
FROM "\\Network\".JCCOSTCODE JCCOSTCODE,
"\\ Network \".JCJOB JCJOB,
"\\ Network \".JCTRANSACTIONS JCTRANSACTIONS
WHERE 
JCJOB.Job = JCTRANSACTIONS.Job AND 
JCCOSTCODE.Cost_Code = JCTRANSACTIONS.Cost_Code AND 
JCCOSTCODE.Job = JCJOB.Job AND 
JCCOSTCODE.Job = JCTRANSACTIONS.Job
4

1 に答える 1

0
select * from JCCOSTCODE
select * from JCJOB 
select * from JCTRANSACTIONS

select Res1.job,Res1.costcode,res1.date,res1.amount,res1.jobdesc,res1.costdesc,res2.topLevelCode,res2.TopLevelCodeDesc from (
SELECT  JCTRANSACTIONS.Job,
JCTRANSACTIONS.CostCode,
JCTRANSACTIONS.Date,
JCTRANSACTIONS.Amount,
JCJOB.Description jobdesc,
JCCOSTCODE.Description as costdesc ,
row_number() over(order by JCTRANSACTIONS.CostCode) rowid
FROM JCCOSTCODE JCCOSTCODE
inner join JCJOB JCJOB on JCCOSTCODE.Job = JCJOB.Job
inner join   JCTRANSACTIONS JCTRANSACTIONS on JCJOB.Job = JCTRANSACTIONS.Job and JCCOSTCODE.CostCode = JCTRANSACTIONS.CostCode) Res1 inner join (
select costcode as topLevelCode, Description as TopLevelCodeDesc, ROW_NUMBER() over (order by costcode ) rowid from JCCOSTCODE where costcode not in (select costcode from JCTRANSACTIONS)) res2
on Res1.rowid = Res2.rowid
于 2015-05-31T03:03:35.750 に答える