Sql 使用多个where子句

Sql 使用多个where子句,sql,where-clause,Sql,Where Clause,我大概一周前才开始使用sql,当然我的任务是提取数据库中177个不同条目的数据。为了一个接一个地执行这些操作,我目前正在使用以下查询 select min(call_date) as First_Call, MAX (call_date) as Last_Call from dbo.CallHistory (nolock) where ListID=6635941 我正在为单个列表id提取最早和最新的通话日期。我要做的是,将我的所有列表id放在其中,并返回列表id以及每个列表id的第一次和最后

我大概一周前才开始使用sql,当然我的任务是提取数据库中177个不同条目的数据。为了一个接一个地执行这些操作,我目前正在使用以下查询

select min(call_date) as First_Call, MAX (call_date) as Last_Call
from dbo.CallHistory (nolock)
where ListID=6635941
我正在为单个列表id提取最早和最新的通话日期。我要做的是,将我的所有列表id放在其中,并返回列表id以及每个列表id的第一次和最后一次通话日期。当我将
ListID
添加到select子句时,我得到一个错误

我希望这足够清楚。。。请询问您是否需要其他信息

试试这个:

select listid, 
       min(call_date) as First_Call, 
       max(call_date) as Last_Call 
from   dbo.CallHistory (nolock) 
group by listid
select min(call_date) as First_Call, 
       MAX (call_date) as Last_Call
  from dbo.CallHistory (nolock)
 where ListID in ( 6635941, ....... )
编辑

正如@paqogomez所建议的,当您需要分析一小部分ID时,这个答案将是有用的。这是因为假设你的数据库有20000个注册表,你只需要分析20个,你把这20个ID放进去,你就有了你的子集

对于所有注册中心,您都应该使用paul提供的答案。

尝试以下方法:

select min(call_date) as First_Call, 
       MAX (call_date) as Last_Call
  from dbo.CallHistory (nolock)
 where ListID in ( 6635941, ....... )
编辑

正如@paqogomez所建议的,当您需要分析一小部分ID时,这个答案将是有用的。这是因为假设你的数据库有20000个注册表,你只需要分析20个,你把这20个ID放进去,你就有了你的子集

对于所有注册中心,您都应该使用paul提供的答案。

试试这个

select listid,min(call_date) as First_Call, 
       MAX (call_date) as Last_Call
  from dbo.CallHistory (nolock)
 where ListID is not null
group by listid
试试这个

select listid,min(call_date) as First_Call, 
       MAX (call_date) as Last_Call
  from dbo.CallHistory (nolock)
 where ListID is not null
group by listid


其中column=value和column=value在sql聚合值中需要GROUP BY子句…尝试按调用日期添加GROUP。
其中column=value和column=value在sql聚合值中需要GROUP BY子句…尝试按调用日期添加GROUP。\paqogomez不会吗?所有列都是聚合函数。@paqogomez如果您没有指定要聚合的任何列,则不需要Group By。@如果您是正确的,我的错误,它仍然不会给出正确的结果。如果你输入多个listid,它将取所有id的最小值和最大值,而不是OP想要的每个id。@paqogomez同意这一点,这就是为什么我认为OP应该从paul那里选择答案。我把它作为保罗回答之后的一个选项。比如说,列出要分析的20个注册中心比列出20000个要容易得多。@JorgeCampos,如果你知道你的答案有误导性,应该编辑或删除它。@paqogomez不会吗?所有列都是聚合函数。@paqogomez如果您没有指定要聚合的任何列,则不需要Group By。@如果您是正确的,我的错误,它仍然不会给出正确的结果。如果你输入多个listid,它将取所有id的最小值和最大值,而不是OP想要的每个id。@paqogomez同意这一点,这就是为什么我认为OP应该从paul那里选择答案。我把它作为保罗回答之后的一个选项。比如说,列出要分析的20个注册中心比列出20000个要容易得多。@JorgeCampos,如果你知道你的答案有误导性,应该编辑或删除它。我能指定要提取的列表ID吗?我似乎在处理11000条的177条记录。是的,只需在(1,2,3,4,5,6)
中的
分组行之间添加
列表id即可,但是,如果您感兴趣的是177个
列表ID
,那么您最好将这些ID存储在一个单独的表中,并加入它。非常感谢您!完成后,我继续使用excel中的vlookup。我能指定要提取的列表ID吗?我似乎在处理11000条的177条记录。是的,只需在(1,2,3,4,5,6)
中的
分组行之间添加
列表id即可,但是,如果您感兴趣的是177个
列表ID
,那么您最好将这些ID存储在一个单独的表中,并加入它。非常感谢您!完成后,我继续使用excel中的vlookup。