sql >> データベース >  >> RDS >> Sqlserver

無関係な結果が出力されますか?

    PS* を入れる必要があります および REASON TEXT OR を使用する場所 条件を次のように括弧で囲みます:

    where (
          REASON_TEXT = 'Parts Not available (ASC)'
    or    REASON_TEXT = 'Parts In Transit (Samsung)'
    or    REASON_TEXT = 'Parts Back Ordered (Samsung)'
          )
    and   PS1 = 'U' 
    and   ( PS2 = 'U' or PS2 = '' )
    and   ( PS3 = 'U' or PS3 = '' )
    and   ( PS4 = 'U' or PS4 = '' )
    and   ( PS5 = 'U' or PS5 = '' )
    

    AND であることを覚えておいてください 演算子は OR よりも優先されます これらの条件を組み合わせる場合は、データベースが各条件を評価する順序を認識できるように、括弧を使用することが重要です。

    完全なクエリ

    SELECT TOP 10000 [Service_order]
          ,[COMPANY]
          ,[PENDING_DAYS]
          ,[SERVICE_TYPE]
          ,[SERVICE_TYPE_TXT]
          ,[STATUS]
          ,[STATUS_TEXT]
          ,[REASON]
          ,[REASON_TEXT]
          ,[ASC code]
          ,[ASC name]
          ,[MODEL]
          ,[INOUTWTY]
          ,[Part_code1]
          ,[PS1]
          ,[confirmation_No1]
          ,[Part_code2]
          ,[PS2]
          ,[SO_NO2]
          ,[Part_code3]
          ,[PS3]
          ,[SO_NO3]
          ,[Part_code4]
          ,[PS4]
          ,[SO_NO4]
          ,[Part_code5]
          ,[PS5]
          ,[SO_NO5]
          ,[Engineer name]
      FROM ['NewLP']
      where (
            REASON_TEXT = 'Parts Not available (ASC)'
      or    REASON_TEXT = 'Parts In Transit (Samsung)'
      or    REASON_TEXT = 'Parts Back Ordered (Samsung)'
            )
      and   PS1 = 'U' 
      and   ( PS2 = 'U' or PS2 = '' )
      and   ( PS3 = 'U' or PS3 = '' )
      and   ( PS4 = 'U' or PS4 = '' )
      and   ( PS5 = 'U' or PS5 = '' )
    


    1. MySQLのEntityFunctions.AddSecondsの代替

    2. MySQL:レコード数のパーセンテージで制限しますか?

    3. SQL Server(T-SQL)で添付ファイル付きの電子メールを送信する

    4. XAMPPを使用してmysqlでエラー2でスタック