【问题标题】:Multirow return Query MSACCESS多行返回查询 MS ACCESS
【发布时间】:2014-06-18 11:59:56
【问题描述】:

我需要运行一个查询,返回所有具有电生理研究但没有 %Ablation% 的事件 所以在这种情况下,我应该只收到事件 608 和 612。该表有两列 SS_EVENT_EP_ID 和 STUDYPROCEDURE

表格截图 https://plus.google.com/photos/105880715521229058253/albums/6026235567691005409/6026235568072337762

【问题讨论】:

  • 你试过什么?这是您要问的一个非常基本的查询。尝试阅读 LIKE 运算符。
  • SELECT EP_Procedure.SS_Event_EP_ID, EP_Procedure_.StudyProcedure, Event_EP.EventDate FROM Event_EP INNER JOIN EP_Procedure ON Event_EP.SS_Event_EP_ID = EP_Procedure.SS_Event_EP_ID WHERE (((EP_Procedure.StudyProcedure)="电生理学研究") AND (( Event_EP.EventDate) #1/1/2004# 和 #12/31/2012#));
  • 我试过喜欢和不喜欢 %ablation 但那不起作用
  • 每个事件都可以有很少的程序,所以如果我运行查询,我将收到所有带有电生理学研究的行,但记录电生理学研究在哪里但没有 %ablation%
  • 也许我需要子查询。首先我检查“电生理学研究”,然后检查 Not Like %ablation%?

标签: sql multirow


【解决方案1】:

我刚看到你的桌子。是的,你是对的,你需要一个子查询。

您还需要EXISTS 运算符。

SELECT EP.SS_Event_EP_ID, EP.StudyProcedure, Event_EP.EventDate 
FROM Event_EP INNER JOIN EP_Procedure As EP
ON Event_EP.SS_Event_EP_ID = EP.SS_Event_EP_ID 
WHERE EP.StudyProcedure = "Electrophysiology study" 
AND (Event_EP.EventDate Between #1/1/2004# And #12/31/2012#)
AND NOT EXISTS ( 
    Select SS_Event_EP_ID from EP_Procedure As EP_I
    Where EP_I.SS_Event_EP_ID = EP.SS_Event_EP_ID 
    And EP_I.StudyProcedure Like "%blation%"
)

【讨论】:

  • 谢谢。我收到语法错误“FROM Event_EP INNER JOIN EP_Procedure As EP”
  • 您确定这是在 MS Access 中吗?如果它在另一个数据库中,你应该省略As
  • MSASSESS 2010乙SELECT EP_Procedure_BIDMC.SS_Event_EP_ID,EP_Procedure_BIDMC.StudyProcedure,Event_EP.EventDate FROM Event_EP INNER JOIN EP_Procedure_BIDMC ON Event_EP.SS_Event_EP_ID = EP_Procedure_BIDMC.SS_Event_EP_ID WHERE(((EP_Procedure_BIDMC.StudyProcedure)= “电生理学研究”) AND ((Event_EP.EventDate) #1/1/2014# 和 #6/1/2014#));
  • 如果 EP_Procedure_BIDMC 是正确的名称,那么只需在我上面的查询中重命名它。 FROM Event_EP INNER JOIN EP_Procedure_BIDMC As EP
猜你喜欢
  • 2023-04-07
  • 2016-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-01
相关资源
最近更新 更多