2017-10-10 9 views
0

すべてのクラブのレコードを取得するこのクエリは、レコードごとにレコードをチェックします。 NULL列は何の役割も果たしません。 Howerver私はNULLを埋める。これは、NULLが存在しないことを意味します。 このクエリはcfqueryを使用してレコードカウントを取得し、2014では204レコードを取得します。クエリはSQLより小さいレコードを受け取ります

cfqueryがレコードを取得できない可能性があることを教えてください。正確なクエリはMSSQL 2014で完全に機能します。

SELECT tblDistrict.IDDist, 
      tblClubs.IDDiv, 
      tblClubs.ClubArtStart, 
      tblClubs.IDClub, 
      tblClubs.ClubName, 
      tblDivisionen.DivBezeichnung, 
      tblDivisionen.Region, 
      tblClubs.OrgDatum, 
      tblClubs.ChartDatum, 
      tblClubs.ClubStatus, 
      tblClubs.ClubArt, 
      tblClubs.Clubort 

    FROM (tblDistrict 
       INNER JOIN tblDivisionen ON tblDistrict.IDDist = tblDivisionen.IDDist) 

      INNER JOIN tblClubs ON tblDivisionen.IDDiv = tblClubs.IDDiv 

      WHERE (((tblDistrict.IDDist)=1)) AND Clubstatus<>'E' AND Clubstatus<>'I' 
+0

なぜClubstatus nullの行が取得されないのですか?質問 – MiloBellano

+0

を理解していないと、プロファイラを使用してデータベースに送信される正確なコマンドを確認してください。たぶんそれはちょっと違うかもしれません – GuidoG

+0

なぜ、メインテーブルと最初の結合がかっこ内にあるのですか? – GuidoG

答えて

0

いくつかの書式設定とエイリアシングから始めます。あなたのクエリは次のようになります。これはずっとメンテナンス可能です。

SELECT d.IDDist 
    , c.IDDiv 
    , c.ClubArtStart 
    , c.IDClub 
    , c.ClubName 
    , div.DivBezeichnung 
    , div.Region 
    , c.OrgDatum 
    , c.ChartDatum 
    , c.ClubStatus 
    , c.ClubArt 
    , c.Clubort 
FROM tblDistrict d 
INNER JOIN tblDivisionen div ON d.IDDist = div.IDDist 
INNER JOIN tblClubs c ON div.IDDiv = c.IDDiv 
WHERE d.IDDist = 1 
    AND c.Clubstatus not in ('E', 'I') 
+1

なぜあなたは '( 'E'、 'I')'ではない 'c.Clubstatus 'を使わないのですか?ただ疑問に思う。 –

+1

@WEI_DBAはその部分を修正しませんでした。 :) –

+0

彼の質問には、OPにはメインテーブルと最初の結合が括弧で囲まれています。それは、SQL Serverの違いは何ですか? – GuidoG

関連する問題