首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Server联合未正确排序

Server联合未正确排序
EN

Stack Overflow用户
提问于 2015-06-09 08:29:00
回答 1查看 97关注 0票数 1

我有以下SQL语句:

代码语言:javascript
复制
select top 1 scrr.name, sess.end_time
from tbl_session sess
     inner join tbl_scripts scrr on sess.script_id = scrr.script_id
where end_time >= '5-May-2015 14:58:00'
  and end_time < '06-May-2015 14:58:00'
  and scrr.script_type in (1,3,4)
  and sess.operator_id = 95
UNION
select top 1 scr.name, oh.end_time
from tbl_outbound_history oh
     inner join tbl_outbound o on oh.outbound_id = o.outbound_id
     inner join tbl_session ses on o.session_id = ses.id
     inner join tbl_scripts scr on ses.script_id = scr.script_id
where oh.end_time >= '5-May-2015 14:58:00'
  and oh.end_time < '06-May-2015 14:58:00'
  and oh.start_time <> oh.end_time
  and oh.user_id = 95
order by end_time

数据没有变化,但每次结果是不同的。就好像命令被忽略了一样。

在本例中,第二个select没有返回任何内容,我试图简化SQL以尽量减少问题,但无法重现它。

如果我删除第二个选择,我每次都会得到相同的结果,所以关于一个联盟的事情可能会变成零和前1,尽管我不能让它用更简单的选择来完成。

以前有人遇到过这样的错误,如果是的话,有解决办法吗?

任何指向正确方向的指示都将不胜感激。

我在用:

代码语言:javascript
复制
Microsoft SQL Server 2012 (SP1) - 11.0.3000.0 (X64) 
    Oct 19 2012 13:38:57 
    Copyright (c) Microsoft Corporation
    Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-09 08:31:03

您需要在外部查询中订购和使用top 1

代码语言:javascript
复制
select top 1 from (
select scrr.name, sess.end_time
from tbl_session sess
     inner join tbl_scripts scrr on sess.script_id = scrr.script_id
where end_time >= '5-May-2015 14:58:00'
  and end_time < '06-May-2015 14:58:00'
  and scrr.script_type in (1,3,4)
  and sess.operator_id = 95
UNION
select scr.name, oh.end_time
from tbl_outbound_history oh
     inner join tbl_outbound o on oh.outbound_id = o.outbound_id
     inner join tbl_session ses on o.session_id = ses.id
     inner join tbl_scripts scr on ses.script_id = scr.script_id
where oh.end_time >= '5-May-2015 14:58:00'
  and oh.end_time < '06-May-2015 14:58:00'
  and oh.start_time <> oh.end_time
  and oh.user_id = 95
) a
order by a.end_time

我也相信,选角时间会很好

代码语言:javascript
复制
CAST('06-May-2015 14:58:00' as datetime)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30726775

复制
相关文章

相似问题

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