我有以下 SQL 代码
SELECT pd1.Meter,
pd1.BasicPool,
pd1.RateClass,
pd1.Flowdate,
(SELECT upOrDownContract
FROM PipelineData pd
WHERE pd.id = pd1.sibling) AS DnK,
match.Volume,
(SELECT Name
FROM Pipeline P
WHERE P.id = ISNULL(pd2.pipelineID, t.PipelineId)) AS Pipeline,
(SELECT Name
FROM Client C
WHERE C.id = t.ClientId) AS CounterParty
FROM MatchingHistoryBothSides match
LEFT JOIN PipelineData pd1
ON match.type1 = 'PipelineDataVO'
AND match.id1 = pd1.ID
LEFT JOIN PipelineData pd2
ON match.type2 = 'PipelineDataVO'
AND match.id2 = pd2.ID
LEFT JOIN TransactionDailyVolume dtv
ON match.type2 = 'TransactionDailyVolumeVO'
AND match.id2 = dtv.ID
LEFT JOIN [Transaction] t
ON dtv.TransactionID = t.ID
WHERE match.type1 = 'PipelineDataVO'
AND ( match.type2 = 'PipelineDataVO'
OR match.type2 = 'TransactionDailyVolumeVO' )
AND pd1.flowDate BETWEEN ? AND ?
AND pd1.LDCid = 75
AND pd1.direction = 'Receipt'
它在 SQL Server 2008 中工作正常,但给出[Microsoft][ODBC SQL Server Driver][SQL Server]The multi-part identifier "pd1.flowDate" could not be bound
在 Excel 2007 的 MS Query 中。任何人都可以解释这段代码哪里出了问题吗?
子查询在Select
MS Query 中不允许使用。因此,删除子查询并将它们作为联接将在 MS Query 中起作用。以下代码适用于 MS Query
SELECT pd1.Meter,
pd1.BasicPool,
pd1.RateClass,
pd1.FlowDate,
pd.upOrDownContract AS dnk,
match.Volume,
p.Name AS pipeline,
c.Name AS counterparty
FROM Matchinghistorybothsides match
LEFT JOIN Pipelinedata pd1
ON match.type1 = 'PipelineDataVO'
AND match.id1 = pd1.ID
LEFT JOIN Pipelinedata pd2
ON match.type2 = 'PipelineDataVO'
AND match.id2 = pd2.ID
LEFT JOIN Transactiondailyvolume dtv
ON match.type2 = 'TransactionDailyVolumeVO'
AND match.id2 = dtv.ID
LEFT JOIN [Transaction] t
ON dtv.TransactionID = t.ID
LEFT JOIN Client c
ON c.id = t.ClientId
LEFT JOIN Pipelinedata pd
ON pd.id = pd1.sibling
LEFT JOIN Pipeline p
ON p.id = COALESCE(pd2.PipelineId, t.PipelineId)
WHERE match.type1 = 'PipelineDataVO'
AND ( match.type2 = 'PipelineDataVO'
OR match.type2 = 'TransactionDailyVolumeVO' )
AND pd1.FlowDate BETWEEN ? AND ?
AND pd1.LDCid = 75
AND pd1.direction = 'Receipt'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)