我有一個查詢無法在Access中工作。我在Access中運行查詢並獲得將SQL Server 2005查詢轉換爲Access 2003查詢
語法錯誤。在查詢表達式中。
這裏有些奇怪的事情發生在這裏,除非錯誤信息應該在句子中間有一段時間,並且沒有開盤報價的結束報價。
這是工作
select
CUS_CustomerID, CUS_CorpName, D.LastRevBy AS DeniedBy,
D.LastRevDate AS DeniedDate, S.LastRevBy AS ScreenBy,
S.LastRevDate AS ScreenDate, S.Comment AS Comments
from
(tblscreening S
inner join
Customer on CUS_CustomerID = S.PartyID)
inner join
tblscreening D on D.partyid = S.partyid
and D.screennumber = (select min(screennumber)
from tblscreening
where partyid = S.partyid
and partytype = 'customer'
and deniedparty = 1
group by partyid, partytype)
where
S.partytype = 'customer' and S.DeniedParty = 1
and S.screennumber = (select max(screennumber)
from tblscreening
where partyid = S.partyID and partytype = 'customer'
group by partyid, partytype)
order by
S.partyid
這裏是一個客戶的一些樣本數據的查詢。該報告實際上會生成來自多個客戶的數據。
PartyID PartyType ScreenNumber DeniedParty LastRevBy LastRevDate Comment
794020 Customer 0 0 827 2007-07-12 13:47:45.000 R# 298479
794020 Customer 1 0 644 2007-08-10 10:48:48.000 RFQ/UPDATED CUSTOMER CARD
794020 Customer 2 0 827 2008-04-01 09:24:09.000 R# 311494
794020 Customer 3 0 827 2008-10-21 12:11:59.000 R# 317773
794020 Customer 4 0 827 2009-06-02 10:59:25.000 R# 324163
794020 Customer 5 0 644 2010-06-22 16:05:02.000 R-335656
794020 Customer 6 0 947 2013-02-04 10:45:53.357 New Inquiry (M8815/6-8)
794020 Customer 7 1 943 2016-04-26 10:07:41.143 Added to denied party
794020 Customer 8 1 944 2016-04-26 10:08:14.107 Verified denied party
單個客戶的結果將是(我加了引號partyid以提高可讀性)
794020 ROCOM CORP. '943' 2016-04-26 10:07:41.143 '944' 2016-04-26 10:08:14.107 Verified denied party
該查詢工作完全在SQL Server中。我嘗試使用設計器來創建自我連接。然後我複製了語法,並提出了這個
SELECT
S.PartyID, S.LastRevBy, S.LastRevDate, D.LastRevBy, D.LastRevDate
FROM
tblExDPScreen S, tblExDPScreen AS D
WHERE
D.screennumber = (SELECT MIN(screennumber)
FROM tblExDpscreen
WHERE D.partyid = partyid
AND partytype = 'customer' AND deniedparty = 1
GROUP BY partyid, partytype)
AND S.screennumber = (SELECT MAX(screennumber)
FROM tblscreening
WHERE S.partyid = partyID
AND partytype = 'customer'
GROUP BY partyid, partytype)
AND S.partytype = 'customer'
AND S.DeniedParty = 1
但即使這運行,它根本不工作。我現在唯一的選擇是規範化表格。但是這會導致報告長時間處於非操作狀態,而不是我想要的。我想讓報告起作用,然後決定是否值得將工作分解。
有什麼建議嗎?
我不相信你的初始查詢工作是完整的。你有「From(tblscreening S inner join [...]」,我不能找到結尾括號。你試過「[...] FROM(tblexdpscreen S,[...]」放下D表。並不像sql那樣強大..推斷同一張表兩次可能不是它的一杯茶 – WickedFan
@ChristopherD Customer是另一張表 – Joe
@WickedFan我剪切並粘貼了我在管理工作室發佈的查詢,它工作得很好。我沒有使用括號,如果你指的是paraenthesis,那麼你可以很容易地通過計數來確定它們是否匹配。 – Joe