Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在一列中选择具有多个选项的单个值_Mysql_Sql - Fatal编程技术网

Mysql 在一列中选择具有多个选项的单个值

Mysql 在一列中选择具有多个选项的单个值,mysql,sql,Mysql,Sql,当两个行号值按顺序相同时,我需要根据日期选择一个值 这里有一个sqlfiddle,只是为了准确地显示我的表是如何构造的。 以下是我尝试过的: SELECT DISTINCT `Line Number` , `Contract Number` , `Date Promised` , `roytecp_n` FROM otis_pos RIGHT J

当两个
行号
值按顺序相同时,我需要根据日期选择一个值

这里有一个sqlfiddle,只是为了准确地显示我的表是如何构造的。

以下是我尝试过的:

SELECT DISTINCT `Line Number`
              , `Contract Number`
              , `Date Promised`
              , `roytecp_n`
           FROM otis_pos
          RIGHT 
           JOIN `otis rev link` 
             on otis_pos.`Item Number` = `otis rev link`.otis_pn
          WHERE otis_pos.`Contract Number` <> '' 
            AND (
  (`Date Promised` <= CURRENT_DATE() + INTERVAL 28 DAY 
    AND (roytecp_n Like 'OTH%' 
        OR roytecp_n Like '9O%' 
        OR roytecp_n Like '81%'
        OR roytecp_n is NULL
  ) 
  OR 
  ( `Date Promised` > CURRENT_DATE() + INTERVAL 28 DAY
    AND (roytecp_n Like '88%' 
        OR roytecp_n Like '89%' 
        OR roytecp_n IS NULL
    )
  )
)
当值大于或等于当前_日期+28天时,需要返回以下数据:

Line Number    Contract Number    Date Promised    roytecp_n
   1               648756          2020-01-24    
   2               648756          2020-01-24      89OTHW600HZ974
   3               648756          2020-01-24      89OTHW600HY998
   1               648756          2020-01-24    
   2               648756          2020-01-24      89OTHW600DV998
   3               648756          2020-01-24      9O04174AKV96-B
   4               648756          2020-01-24      OTHWC00DT998  
以下是当值小于或等于当前_日期+28天时,需要如何返回数据

Line Number    Contract Number    Date Promised    roytecp_n
   1               648756          2020-01-24    
   2               648756          2020-01-24      OTHW600HZ974
   3               648756          2020-01-24      OTHW600HY998
   1
   1               648756          2020-01-24    
   2               648756          2020-01-24      OTHW600DV998
   3               648756          2020-01-24      9O04174AKV96-B
   4               648756          2020-01-24      OTHWC00DT998
似乎你有一个错误(在第一次和第二次)

  SELECT DISTINCT `Line Number`
                , `Contract Number`
                , `Date Promised`
                , `roytecp_n`
  FROM otis_pos
  RIGHT JOIN `otis rev link` 
               on otis_pos.`Item Number` = `otis rev link`.otis_pn
  WHERE otis_pos.`Contract Number` <> '' 
  AND (`Date Promised` <= CURRENT_DATE() + INTERVAL 28 DAY 
        AND (roytecp_n Like 'OTH%' 
            OR roytecp_n Like '9O%' 
            OR roytecp_n Like '81%'
            OR roytecp_n is NULL
      ) 
      OR 
      ( `Date Promised` > CURRENT_DATE() + INTERVAL 28 DAY
        AND (roytecp_n Like '88%' 
            OR roytecp_n Like '89%' 
            OR roytecp_n IS NULL
        )
      )
    )
选择不同的行号`
,`合同号`
“承诺的日期`
,`roytecp\n`
来自奥的斯酒店
右连接“奥的斯修订链接”
在奥的斯位置上,`项目编号'=`奥的斯修订链接'。奥的斯零件号
其中otis_位置‘合同号’
和(`Date Promised`CURRENT_Date()+间隔28天
和(如“88%”
或者像“89%”一样
或者roytecp\u n为空
)
)
)

对不起,我一定没有把问题说清楚。我需要根据日期条件选择一个值,当有两个相同的行号背靠背时,同时保持行号的顺序。您的评论也不清楚。。关于我的sql代码(返回两行),您想要哪一行???
  SELECT DISTINCT `Line Number`
                , `Contract Number`
                , `Date Promised`
                , `roytecp_n`
  FROM otis_pos
  RIGHT JOIN `otis rev link` 
               on otis_pos.`Item Number` = `otis rev link`.otis_pn
  WHERE otis_pos.`Contract Number` <> '' 
  AND (`Date Promised` <= CURRENT_DATE() + INTERVAL 28 DAY 
        AND (roytecp_n Like 'OTH%' 
            OR roytecp_n Like '9O%' 
            OR roytecp_n Like '81%'
            OR roytecp_n is NULL
      ) 
      OR 
      ( `Date Promised` > CURRENT_DATE() + INTERVAL 28 DAY
        AND (roytecp_n Like '88%' 
            OR roytecp_n Like '89%' 
            OR roytecp_n IS NULL
        )
      )
    )