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