Sql server sql server语句返回值2次

Sql server sql server语句返回值2次,sql-server,Sql Server,当我查询上述代码时,我得到了两次结果 如果有一行管理员的队列号为1005, 我有两次 知道吗?如果只有一个队列号为1005的就诊行,则必须有两个事件行的loginid与就诊行的loginid匹配。如果只有一个就诊行的loginid与队列号为1005,则必须有两个事件行的loginid与就诊行的loginid匹配。如何缩短它 select loginname as 'Officer', CONVERT(VARCHAR(10), visit.tmstamp, 105) as 'Date', vis

当我查询上述代码时,我得到了两次结果

如果有一行管理员的队列号为1005, 我有两次


知道吗?

如果只有一个队列号为1005的就诊行,则必须有两个事件行的loginid与就诊行的loginid匹配。

如果只有一个就诊行的loginid与队列号为1005,则必须有两个事件行的loginid与就诊行的loginid匹配。

如何缩短它

select
 loginname as 'Officer',
CONVERT(VARCHAR(10), visit.tmstamp, 105) as 'Date',
visit.queueno

from visit,event   where (  visit.branchno='1007'    )  
and  
(visit.wstation='1'  or visit.wstation='10'  or visit.wstation='11'  or visit.wstation='15'  or visit.wstation='2'  or visit.wstation='20'  or visit.wstation='21'  or visit.wstation='23'  or visit.wstation='24'  or visit.wstation='28'  or visit.wstation='29'  or visit.wstation='3'  or visit.wstation='30'  or visit.wstation='31'  or visit.wstation='32'  or visit.wstation='33'  or visit.wstation='4'  or visit.wstation='5'  or visit.wstation='6'  or visit.wstation='7'  or visit.wstation='8'  or visit.wstation='9'    )  and  (visit.catname='BY PASS'  or visit.catname='REG STORE'  or visit.catname='REGISTRATION'  or visit.catname='ROOM 1 to 4'  or visit.catname='ROOM A1 & A2'  or visit.catname='ROOM A3 & A4'  or visit.catname='ROOM A5-A7&A9-A11'  or visit.catname='ROOM A8-BMD'  or visit.catname='ROOM B20'  or visit.catname='ROOM B21 B23 B24'  or visit.catname='Ward Cases'    )  and  (visit.btnname='BY PASS'  or visit.btnname='REG STORE'  or visit.btnname='REGISTRATION'  or visit.btnname='ROOM 1 to 4'  or visit.btnname='ROOM A1 & A2'  or visit.btnname='ROOM A3 & A4'  or visit.btnname='ROOM A5-A7&A9-A11'  or visit.btnname='ROOM A8-BMD'  or visit.btnname='ROOM B20'  or visit.btnname='ROOM B21'  or visit.btnname='B23'  or visit.btnname='B24'  or visit.btnname='Ward Cases'  )   and (    (Day(visit.tmstamp)=1 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)      OR (DAY(visit.tmstamp)=2 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=3 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=4 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=5 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=6 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=7 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=8 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=9 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=10 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=11 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=12 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=13 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=14 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=15 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=16 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=17 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=18 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=19 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=20 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=21 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=22 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=23 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=24 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=25 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=26 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=27 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=28 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=29 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=30 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=31 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)   ) 
and  
((loginname='Administrator')  or (loginname='121 JUDY YAP CHEO T')  or (loginname='044 Noor Faiza')  or (loginname='109 Jaya'))  
and 
(CONVERT(VARCHAR(10), visit.tmstamp, 105)=CONVERT(VARCHAR(10), event.tmstamp, 105)) 
and 
(visit.loginid=event.loginid) 
类似的事情也可以通过其他标准来完成

避免这种讽刺的一个好方法是不要让编写糟糕的工具生成SQL。

如何缩短它

select
 loginname as 'Officer',
CONVERT(VARCHAR(10), visit.tmstamp, 105) as 'Date',
visit.queueno

from visit,event   where (  visit.branchno='1007'    )  
and  
(visit.wstation='1'  or visit.wstation='10'  or visit.wstation='11'  or visit.wstation='15'  or visit.wstation='2'  or visit.wstation='20'  or visit.wstation='21'  or visit.wstation='23'  or visit.wstation='24'  or visit.wstation='28'  or visit.wstation='29'  or visit.wstation='3'  or visit.wstation='30'  or visit.wstation='31'  or visit.wstation='32'  or visit.wstation='33'  or visit.wstation='4'  or visit.wstation='5'  or visit.wstation='6'  or visit.wstation='7'  or visit.wstation='8'  or visit.wstation='9'    )  and  (visit.catname='BY PASS'  or visit.catname='REG STORE'  or visit.catname='REGISTRATION'  or visit.catname='ROOM 1 to 4'  or visit.catname='ROOM A1 & A2'  or visit.catname='ROOM A3 & A4'  or visit.catname='ROOM A5-A7&A9-A11'  or visit.catname='ROOM A8-BMD'  or visit.catname='ROOM B20'  or visit.catname='ROOM B21 B23 B24'  or visit.catname='Ward Cases'    )  and  (visit.btnname='BY PASS'  or visit.btnname='REG STORE'  or visit.btnname='REGISTRATION'  or visit.btnname='ROOM 1 to 4'  or visit.btnname='ROOM A1 & A2'  or visit.btnname='ROOM A3 & A4'  or visit.btnname='ROOM A5-A7&A9-A11'  or visit.btnname='ROOM A8-BMD'  or visit.btnname='ROOM B20'  or visit.btnname='ROOM B21'  or visit.btnname='B23'  or visit.btnname='B24'  or visit.btnname='Ward Cases'  )   and (    (Day(visit.tmstamp)=1 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)      OR (DAY(visit.tmstamp)=2 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=3 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=4 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=5 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=6 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=7 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=8 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=9 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=10 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=11 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=12 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=13 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=14 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=15 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=16 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=17 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=18 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=19 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=20 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=21 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=22 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=23 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=24 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=25 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=26 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=27 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=28 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=29 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=30 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)       OR (DAY(visit.tmstamp)=31 AND MONTH(visit.tmstamp)=12 AND YEAR(visit.tmstamp)=2010)   ) 
and  
((loginname='Administrator')  or (loginname='121 JUDY YAP CHEO T')  or (loginname='044 Noor Faiza')  or (loginname='109 Jaya'))  
and 
(CONVERT(VARCHAR(10), visit.tmstamp, 105)=CONVERT(VARCHAR(10), event.tmstamp, 105)) 
and 
(visit.loginid=event.loginid) 
类似的事情也可以通过其他标准来完成


避免这种讽刺的一个好方法是,不要让编写糟糕的工具生成SQL。

这可能意味着管理员有两个事件需要满足其他条件。[顺便说一句,我刚刚向右滚动,这是一个可怕的查询!]+1@Mitch-Wheat-这是一个小小的滚动条手柄。我害怕自己滚动。是的,我知道。。那太可怕了。有没有缩短的办法?您可以忽略where语句。问题不在这里..RE:“任何缩短它的想法”-使用
visit.tmstamp>='20101201'和visit.tmstamp<'20110101'
而不是93个不同的年/月/日比较将是一个开始!您也可以在中使用
,而不是在同一列上使用一堆
语句。但是,既然tmstamp具有dd/mm/yyyy hh:mm:ss tt,那么这样做可以吗?这可能意味着管理员有两个事件满足其他条件。[顺便说一句,我刚刚向右滚动,这是一个可怕的查询!]+1@Mitch-Wheat-这是一个小小的滚动条手柄。我害怕自己滚动。是的,我知道。。那太可怕了。有没有缩短的办法?您可以忽略where语句。问题不在这里..RE:“任何缩短它的想法”-使用
visit.tmstamp>='20101201'和visit.tmstamp<'20110101'
而不是93个不同的年/月/日比较将是一个开始!您也可以在
中使用
,而不是在同一列上使用一堆
语句。但是,既然tmstamp有dd/mm/yyyy hh:mm:ss tt,那么这样做可以吗?