如何编写具有2个日期范围的sql子查询
我是SQL新手,对以下SSRS报告所需的查询有困难 我们有一张表,上面列出了姓名和日期。该日期与该人员参加活动的日期相对应。我们希望运行一个日期范围的查询,并调出在该日期范围内参加过活动的姓名列表及其所有出席日期,即使其中一个日期超出范围 餐桌也是如此如何编写具有2个日期范围的sql子查询,sql,reporting-services,Sql,Reporting Services,我是SQL新手,对以下SSRS报告所需的查询有困难 我们有一张表,上面列出了姓名和日期。该日期与该人员参加活动的日期相对应。我们希望运行一个日期范围的查询,并调出在该日期范围内参加过活动的姓名列表及其所有出席日期,即使其中一个日期超出范围 餐桌也是如此 NAME, DATE OF ATTENDENCE ALICE, 1/1/2000 BOB, 1/1/2000 CHARLIE, 1/1.2000 ALICE, 1/1/2001 ALICE, 1/1/2002 BOB, 1/1/2002 我们希
NAME, DATE OF ATTENDENCE
ALICE, 1/1/2000
BOB, 1/1/2000
CHARLIE, 1/1.2000
ALICE, 1/1/2001
ALICE, 1/1/2002
BOB, 1/1/2002
我们希望查询一年,比如说2002年,然后查看02年参加过活动的人的名单,以及这些人的所有其他出席日期,这样2002年就会显示出来
ALICE, 1/1/2000
ALICE, 1/1/2001
ALICE, 1/1/2002
BOB, 1/1/2000
BOB, 1/1/2002
我在如何处理这个问题上遇到了困难,我假设我需要多个查询,但我不能完全理解如何处理
任何帮助或建议都将不胜感激
谢谢
MC您可以使用exists子句执行此操作:
您将希望使用嵌套查询。考虑下表:
CREATE TABLE IF NOT EXISTS `events` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(32) NOT NULL,
`when` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
);
然后,您可以使用以下查询获得所需的所有信息:
select * from `events` where name in (
SELECT distinct name
FROM `events`
WHERE `when` >= STR_TO_DATE('24/01/2014', '%d/%m/%Y')
and `when` <= STR_TO_DATE('26/01/2014', '%d/%m/%Y')
)
…得到忍者d:…我认为子查询并不能解决您的问题。子查询只返回单个字段。 相反,您可以使用嵌套查询 找像这样的东西
Select *
From TimeTable
Where Id In
(
Select Id
From TimeTable
Where Date >= TO_DATE('01/01/2002 00:00:00', 'MM/DD/YYYY HH:MI:SS') And
Date < TO_DATE('01/01/2003 00:00:00', 'MM/DD/YYYY HH:MI:SS')
)
Select *
From TimeTable
Where Id In
(
Select Id
From TimeTable
Where Date >= TO_DATE('01/01/2002 00:00:00', 'MM/DD/YYYY HH:MI:SS') And
Date < TO_DATE('01/01/2003 00:00:00', 'MM/DD/YYYY HH:MI:SS')
)