我如何撰写查询,告诉我指定日期(e.g. 2015-01-15)
是否属于任何' from_date
' ' to_date
'下表中的期间?这里有什么特别之处,我只希望每个id返回一行。
id | from_date | to_date
a | 2015-01-01 | 2015-01-30
a | 2015-04-01 | 2015-04-30
当前查询:
select id,
case when from_date <= '2015-01-15'
and to_date >= '2015-01-15'
then 'true' else 'false' end as status
from dates
目前的结果:
id | status
a | true
a | false
期望的结果:
id | status
a | true
答案 0 :(得分:1)
我猜你正在寻找的是DISTINCT ON。 id列上的DISTINCT ON仅为每个id输出一行。
尝试以下查询
True
输出到,
string pathcpnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =" + textBox1.Text + ";Extended Properties=\""Excel 8.0;HDR=Yes;IMEX=1;";";
OleDbConnection con = new OleDbConnection(pathcpnn);
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter("Select * from[" + textBox2.Text + "$]", con);
myDataAdapter.Fill(dt);
DAtagridview1.datasource=dt;
答案 1 :(得分:0)
select id,'true' as status
from dates
where '2015-01-15' between from_date and to_date;