我有3张桌子:
for line in <your results set>:
line = line.rstrip()
if '^Referer:' in line) :
print line
我想做一个查询,显示JCTransactions表中的所有记录,但是有工作描述,成本代码描述和顶级成本代码描述。
例如:
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)
我无法将TopLevelCostCode及其描述添加到结果中。
到目前为止我的代码运行良好,但它没有我想要的最后一列:
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
答案 0 :(得分: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