0

次のコードは MS Access からのもので、SQL サーバーで動作するように変換しようとしています。IsNull を含む最後の行を変換する方法がわかりません。PS:LIS はドライブの名前です。ヒントを教えてくれる人に感謝します。

SELECT DISTINCT [Molecular Pathology].[ID#], [Molecular Pathology].[Last Name], 
[Molecular Pathology].[First Name], [Molecular Pathology].Gender, 
[Molecular Pathology].[Date of Birth], [Molecular Tests].[Test Type], 
[Molecular Pathology].[Testing Gene], [Molecular Pathology].[Testing Exon], 
[Molecular Pathology].[Tested Mutation], [Molecular Pathology].[Testing Gene 2], 
[Molecular Pathology].[Testing Exon 2], [Molecular Pathology].[Tested Mutation 2], 
[Molecular Tests].[Test Name], [Molecular Pathology].[Result Reported],
[Molecular Pathology].[Date Received], [Molecular Pathology].[gp#]
FROM ([Molecular Pathology] 
LEFT JOIN [Molecular Select Tests] 
  ON [Molecular Pathology].ID = [Molecular Select Tests].ForKey) 
LEFT JOIN [Molecular Tests] 
  ON [Molecular Select Tests].Test = [Molecular Tests].[Test Name]
WHERE ((IsNull([Molecular Pathology].[LIS SignOut])<>False));
4

1 に答える 1

1

マイナーな問題がいくつかありますが、テーブル エイリアスを適切に使用することで、このクエリの読みやすさを大幅に改善できます。この書き直しを試してください:

SELECT DISTINCT 
  mp.[ID#],            mp.[Last Name],       mp.[First Name], 
  mp.Gender,           mp.[Date of Birth],   mt.[Test Type],       
  mp.[Testing Gene],   mp.[Testing Exon],    mp.[Tested Mutation], 
  mp.[Testing Gene 2], mp.[Testing Exon 2],  mp.[Tested Mutation 2], 
  mt.[Test Name],      mp.[Result Reported], mp.[Date Received],
  mp.[gp#]
FROM 
  dbo.[Molecular Pathology] AS mp 
LEFT OUTER JOIN 
  dbo.[Molecular Select Tests] AS mst
  ON mp.ID = mst.ForKey -- Molecular Pathology has an ID column and an ID# column? 
LEFT OUTER JOIN 
  dbo.[Molecular Tests] AS mt
  ON mst.Test = mt.[Test Name]
WHERE 
  mp.[LIS SignOut] IS NULL;
于 2012-05-23T13:40:55.407 に答える