首页
学习
活动
专区
圈层
工具
发布

T-SQL编程
EN

Stack Overflow用户
提问于 2014-01-10 00:13:13
回答 4查看 77关注 0票数 0

我需要写一个查询来提取下面的记录。

代码语言:javascript
复制
membership_id,
person_id,
first_name
last_name 

昨天加入或打电话的人和没有加入的成员只会有person_id

但是下面的查询是从表中提取所有记录。

代码语言:javascript
复制
SELECT 
  dbo.pn_membership.membership_id, 
  dbo.pn.person_id,
  dbo.pn.first_name, 
  dbo.pn.surname, 
  dbo.pn.create_datetime 
 FROM 
  dbo.pn
  LEFT OUTER JOIN
  dbo.pn_membership 
  ON dbo.pn.person_id=dbo.pn_membership.person_id AND
  dbo.pn.create_datetime >=getdate()-1

我只需要运行日期前一天的记录。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-01-10 00:25:15

试试这个版本。

你在“昨天谁加入或打电话”的问题上写的

但是你的查询“谁在过去的24小时里加入或打电话”

这有点不同。另外,正如斯巴基所指出的,你有过这样的缺憾

哪里条款的问题。我的版本是“昨天加入或打电话的人”。

代码语言:javascript
复制
SELECT 
dbo.pn_membership.membership_id, 
dbo.pn.person_id,
dbo.pn.first_name, 
dbo.pn.surname, 
dbo.pn.create_datetime 
FROM 
dbo.pn
LEFT OUTER JOIN
dbo.pn_membership 
ON dbo.pn.person_id=dbo.pn_membership.person_id
WHERE
dbo.pn.create_datetime >= DATEADD(Day, DATEDIFF(Day, 0, getdate()), -1)
AND 
dbo.pn.create_datetime < DATEADD(Day, DATEDIFF(Day, 0, getdate()), 0)
票数 0
EN

Stack Overflow用户

发布于 2014-01-10 00:24:28

试试这个:

代码语言:javascript
复制
SELECT 
  dbo.pn_membership.membership_id, 
  dbo.pn.person_id,
  dbo.pn.first_name, 
  dbo.pn.surname, 
  dbo.pn.create_datetime 
 FROM 
  dbo.pn
  LEFT OUTER JOIN
  dbo.pn_membership 
  ON dbo.pn.person_id=dbo.pn_membership.person_id 
WHERE dbo.pn.create_datetime >=getdate()-1

你的询问说..。

  • 从pn表上给我一些字段。
  • 另外,如果那个人有相匹配的会员记录,请给我这个信息。
  • 如果他们不给我带空值的成员资格表中的字段

通过将日期测试条件移到WHERE子句,可以减少pn表中的行数。通过将日期作为联接的一部分,只会增加从成员资格表获得更多空值列的可能性。

票数 0
EN

Stack Overflow用户

发布于 2014-01-10 00:25:05

您是说它使用日期< getdate()-1来提取记录,还是在person_id位于Null的地方提取记录?如果后者尝试这样做

代码语言:javascript
复制
SELECT dbo.pn_membership.membership_id, dbo.pn.person_id, dbo.pn.first_name, 
dbo.pn.surname, dbo.pn.create_datetime FROM dbo.pn LEFT OUTER JOIN dbo.pn_membership ON 
dbo.pn.person_id=dbo.pn_membership.person_id AND dbo.pn.create_datetime >=getdate()-1 
and dbo.pn.person_id is not NULL
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21033894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档