用于排除某些数据行的SQL语句

时间:2017-09-15 17:51:42

标签: mysql sql asp.net vb.net

我有这个SQL查询:

SELECT DISTINCT viewid, 
            relid, 
            Sum(kaiprddta.f0315le.rtaap *. 01)  AS OPEN, 
            Sum(kaiprddta.f0315le.rtcurr *. 01) AS CURRENT1, 
            Sum(kaiprddta.f0315le.rtftr *. 01)  AS FUTURE, 
            Sum(kaiprddta.f0315le.rtag1 *. 01)  AS AGE1, 
            Sum(kaiprddta.f0315le.rtag2 *. 01)  AS AGE2, 
            Sum(kaiprddta.f0315le.rtag3 *. 01)  AS AGE3, 
            rtcrcd, 
            Sum(kaiprddta.f0315le.rtag4 *. 01)  AS AGE4, 
            Sum(kaiprddta.f0315le.rtag5 *. 01)  AS AGE5, 
            Sum(kaiprddta.f0315le.rtag6 *. 01)  AS AGE6, 
            Sum(kaiprddta.f0315le.rtag7 *. 01)  AS AGE7, 
            rtco 
FROM   kaiprddta.f0315le, 
   kaiprddta.f55311 
WHERE  ( kaiprddta.f0315le.rtac06 = terr ) 
   AND ( viewid = 'Company' ) 
   AND ( rtco = '00001' 
          OR rtco = '00099' ) 
GROUP  BY viewid, 
      relid, 
      rtcrcd, 
      rtco 
ORDER  BY viewid, 
      relid, 
      rtcrcd 

现在看来它是什么样的(我不允许嵌入图片,所以如果有人可以编辑它并使其嵌入会非常棒):

Sample

有两个RELID值" Region427"和" Region632"两者都有2个RTCO值" 00001"和" 00099"。所有其他数据行的一个RTCO值为" 00001"。 sql为每个RTCO值返回一行数据。我想只返回RTCO值的行" 00099" for" Region427"和" Region632"。有人可以帮我修改我的sql语句来实现这个

2 个答案:

答案 0 :(得分:1)

AND ( (rtco = '00001' AND RELID!="Region427")
          OR (rtco = '00099' AND RELID="Region427")) 

我相信你所追求的目标。

泰德。

答案 1 :(得分:0)

您可以在select语句中使用MAX(rtco)而不是rtco,但它可能不会使此行的relid和rtcrcd具有最大值rtco