sql >> Database teknologi >  >> RDS >> Sqlserver

Urelateret resultat i output?

Du skal indtaste din PS* og REASON TEXT hvor du bruger OR betingelser i parentes som denne:

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 = '' )

Husk at AND operatoren har forrang over OR og når disse betingelser kombineres, er det vigtigt at bruge parenteser, så databasen ved, i hvilken rækkefølge den enkelte betingelse skal evalueres.

Fuld forespørgsel

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. SQL Server 2016:Opret en lagret procedure

  2. Begrænsning af mysql-tabel til en sertain-størrelse og automatisk sletning af ældste poster

  3. Laravel-migreringsfejl:Syntaksfejl eller adgangsovertrædelse:1071 Den angivne nøgle var for lang; max nøglelængde er 767 bytes

  4. Hvordan vælger jeg sidste 30 dages datoer i MySQL, selv om datoerne ikke er til stede i mysql?