Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.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
返回指定测试编号和日期的SQL查询_Sql_Ms Access - Fatal编程技术网

返回指定测试编号和日期的SQL查询

返回指定测试编号和日期的SQL查询,sql,ms-access,Sql,Ms Access,我有一个带有TestNumber列的表,该列有四个可能性(例如:1-4)、TestDate列和其他数据。我想做一个查询,返回用户定义的年份和测试编号。例如,我想返回日期为2008年的测试编号1和2 编辑: 我基本上想把这两条语句合并成一条语句: SELECT * FROM testTable WHERE testNumber = '1' AND '2' SELECT * FROM testTable WHERE testDate between #01/01/2008# and #01/01/2

我有一个带有TestNumber列的表,该列有四个可能性(例如:1-4)、TestDate列和其他数据。我想做一个查询,返回用户定义的年份和测试编号。例如,我想返回日期为2008年的测试编号1和2

编辑: 我基本上想把这两条语句合并成一条语句:

SELECT * FROM testTable WHERE testNumber = '1' AND '2'
SELECT * FROM testTable WHERE testDate between #01/01/2008# and #01/01/2009#
试试这个:

SELECT * 
FROM testTable 
WHERE testNumber IN ('1', '2') 
    AND testDate between #01/01/2008# and #01/01/2009#
试试这个:

SELECT * 
FROM testTable 
WHERE testNumber IN ('1', '2') 
    AND testDate between #01/01/2008# and #01/01/2009#

我不确定是否有人正确回答了这个问题@Manu组合了标准,而不是结果集,因此他不会得到提问者两条SQL语句的并集。在我看来,应该是:

  SELECT * FROM testTable WHERE testNumber In ('1', '2') 
     OR testDate between #01/01/2008# and #12/31/2008#
请注意,一些数据库引擎(包括Jet/ACE)包含了对介于/和之间的数据的解释,因此标准应该是一年中的第一个和最后一个日期,而不是两年中的1月1日

但这实际上取决于特定db引擎对介于/和之间的数据的解释

还要注意,如果日期字段有时间部分,则需要使用:

  testDate >= #01/01/2008# and testDate < #01/01/2009#
testDate>=#01/01/2008#和testDate<#01/01/2009#

…而不是介于/和之间。

我不确定是否有人正确回答了这个问题@Manu组合了标准,而不是结果集,因此他不会得到提问者两条SQL语句的并集。在我看来,应该是:

  SELECT * FROM testTable WHERE testNumber In ('1', '2') 
     OR testDate between #01/01/2008# and #12/31/2008#
请注意,一些数据库引擎(包括Jet/ACE)包含了对介于/和之间的数据的解释,因此标准应该是一年中的第一个和最后一个日期,而不是两年中的1月1日

但这实际上取决于特定db引擎对介于/和之间的数据的解释

还要注意,如果日期字段有时间部分,则需要使用:

  testDate >= #01/01/2008# and testDate < #01/01/2009#
testDate>=#01/01/2008#和testDate<#01/01/2009#

…而不是在/和之间。

@ScottK:在询问SQL问题时,指定数据库引擎是至关重要的。否则,您会得到非常好的答案,但不是有用的答案(如use Cast())。我认为这个答案是错误的,因为它返回的结果与原始问题的两条SQL语句的并集不一样。AND应该改为OR,否?我应该提到db引擎,但是,我也希望看到可能的SQL Server答案,因为我将来可能会在这个应用程序中使用它。我希望这些答案没有被删除(使用cast()的答案)。@ScottK:在询问SQL问题时,指定数据库引擎是至关重要的。否则,您会得到非常好的答案,但不是有用的答案(如use Cast())。我认为这个答案是错误的,因为它返回的结果与原始问题的两条SQL语句的并集不一样。AND应该改为OR,否?我应该提到db引擎,但是,我也希望看到可能的SQL Server答案,因为我将来可能会在这个应用程序中使用它。我希望这些答案没有被删除(使用cast()的答案)。testNumber是文本字段还是数值?如果是数字,则丢失引号。testNumber是字符串。实际表格使用跑道编号作为测试编号(“16L,34R”)。测试编号是文本字段还是数值?如果是数字,则丢失引号。testNumber是字符串。实际表格使用跑道编号作为测试编号('16L,34R')。Manu的答案对我来说很有用。我有一个表单,用户可以选择他们想要的测试编号(通过复选框)和他们想要的年份(通过组合框)。我用这些来查询。谢谢你提供的关于日期之间/和之间的信息!我不确定它是否包含在内。如果@Manu的回答给了你正确的结果,那么你显然错误地陈述了你需要的结果集。您说过需要两个结果集的组合,这需要OR。也许你应该改变你的问题,以反映这样一个事实,即你不希望你发布的两个select语句的结合,而是一个结合了这两个标准的语句。我明白你的意思。我想要组合两个查询语句,而不是每个查询的结果集。我有一个表单,用户可以选择他们想要的测试编号(通过复选框)和他们想要的年份(通过组合框)。我用这些来查询。谢谢你提供的关于日期之间/和之间的信息!我不确定它是否包含在内。如果@Manu的回答给了你正确的结果,那么你显然错误地陈述了你需要的结果集。您说过需要两个结果集的组合,这需要OR。也许你应该改变你的问题,以反映这样一个事实,即你不希望你发布的两个select语句的结合,而是一个结合了这两个标准的语句。我明白你的意思。我想要组合两个查询语句,而不是每个查询的结果集。