簡體   English   中英

MS訪問SQL查詢

[英]MS Access to SQL Query

我已經從Access DB遷移到SQL Server的查詢很少。 但是結果不一樣。 下面是Access和SQL中的查詢。 有人可以讓我知道查詢是否有問題。

Query 1  in MS Access
SELECT [TableA].Mat, [TableA].Sg, [TableA].Pt, [TableB].[Ptype]
FROM [TableA] INNER JOIN [TableB] ON [TableA].Sg=[TableB].Sg
WHERE ((([TableA].Dl)="04") And [TableB].[Ptype]<>"dummy") - TableFinal

Query2 in MS Access
SELECT DISTINCT TableFinal.Mat, TableFinal.Sg, IIf(TableFinal.Pt Is Null,[TableD].Pt,TableFinal.Pt) AS Pnt, [TableC].[Ptype]
FROM (TableFinal INNER JOIN [TableC] ON TableFinal.Sg=[TableC].Sg) INNER JOIN [TableD] ON ([TableC].Pt=[TableD].Pt) AND (TableFinal.Mat=[TableD].Mat)
WHERE ((([TableC].[Ptype])<>"dummy"));

Combined Query1&2 in SQL
SELECT DISTINCT [TableA].Mat, [TableA].Sg, ISNULL([TableA].Pt, [TableC].Pt) AS Pln, 
[TableB].[Ptype]
FROM  [TableA] INNER JOIN
[TableB] ON [TableA].Sg = [TableB].Sg INNER JOIN
[TableC] ON [TableB].Pt = [TableC].Pt AND 
[TableA].Mat = [TableC].Mat
WHERE ([TableB].[Ptype] <> 'dummy') AND ([TableA].Dl = '04') - Final


Query3 in MS Access
SELECT DISTINCT Final.Mat, Final.Sg, Final.Pt, IIf([TableB].[Ptype] Is Null,Final.[Ptype],[TableB].[Ptype]) AS [Pan] 
INTO Destination
FROM [TableB] RIGHT JOIN Final ON ([TableB].Pt=Final.Pt) AND ([TableB].Sg=Final.Sg);



Query3 in SQL
SELECT DISTINCT Final.Mat, Final.Sg, Final.Pt, 
ISNULL(TableB].[Ptype], Final.[Ptype]) AS [Ptype]
FROM TableB] RIGHT OUTER JOIN
Final ON [TableB].Pt = Final.Pt AND 
[TableB].Sg = Final.Sg

我不確定,但是我認為這是您想要的:

--Combined Query1&2 in SQL
SELECT DISTINCT
  [TableA].Mat,
  [TableA].Sg,
  ISNULL([TableA].Pt, [TableC].Pt) AS Pln,
  [TableB].[Ptype]
INTO
  #FINAL
FROM
  [TableA]
  INNER JOIN [TableB] ON [TableA].Sg = [TableB].Sg
  INNER JOIN [TableC] ON [TableB].Pt = [TableC].Pt AND
                         [TableA].Mat = [TableC].Mat
WHERE
  ([TableB].[Ptype] <> 'dummy') AND
  ([TableA].Dl = '04')

--Query3 in SQL
SELECT DISTINCT
  Final.Mat,
  Final.Sg,
  Final.Pln, --Final.Pt,
  ISNULL([TableB].[Ptype], Final.[Ptype]) AS [Ptype]
FROM
  [TableB]
  RIGHT OUTER JOIN #FINAL AS Final ON [TableB].Pt = Final.Pln AND
                                      [TableB].Sg = Final.Sg  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM