在orden中重写查询以避免一些记录

时间:2015-10-22 21:43:00

标签: sql

我不知道如何重写查询以避免ISPRIMARY = 0的记录。换句话说,允许的值必须是ISPRIMARY = 1和ISPRIMARY = NULL。

查询是下一个:

select 
  S.assetnum, S.description, S.serialnum,
  S.epp_codactfij, S.location, L.description,
  S.EPP_NUMCONTRATO, S.PURCHASEPRICE, U.personid, U.isprimary
from maximo.asset S 
left join maximo.locations L on S.location=L.location
left join maximo.assetusercust U on S.assetnum=U.assetnum
where 
S.siteid ='TI'
order by S.assetnum

2 个答案:

答案 0 :(得分:1)

尝试将以下行添加到WHERE子句中:

select 
S.assetnum, S.description, S.serialnum, S.epp_codactfij, S.location, L.description, S.EPP_NUMCONTRATO, S.PURCHASEPRICE, U.personid, U.isprimary
from maximo.asset S 
left join maximo.locations L on S.location=L.location
left join maximo.assetusercust U on S.assetnum=U.assetnum
where 
S.siteid ='TI'
-- add this line
AND (U.isprimary = 1 OR U.isprimary IS NULL)
order by S.assetnum

答案 1 :(得分:0)

select 
  S.assetnum, S.description, S.serialnum, S.epp_codactfij,
  S.location, L.description, S.EPP_NUMCONTRATO,
  S.PURCHASEPRICE, U.personid, U.isprimary
from maximo.asset S 
left join maximo.locations L on S.location=L.location
left join maximo.assetusercust U on S.assetnum=U.assetnum
WHERE S.siteid ='TI' AND (U.isprimary = 1 OR U.isprimary IS NULL)
order by S.assetnum;

或:

select 
  S.assetnum, S.description, S.serialnum, S.epp_codactfij,
  S.location, L.description, S.EPP_NUMCONTRATO,
  S.PURCHASEPRICE, U.personid, U.isprimary
from maximo.asset S 
left join maximo.locations L on S.location=L.location
left join maximo.assetusercust U on S.assetnum=U.assetnum
WHERE S.siteid ='TI' AND (U.isprimary <> 0 OR U.isprimary IS NULL)
order by S.assetnum;