Sql 对查询进行格式化,使其更易于阅读——例如:将每个选择字段放在其自己的行上——这通常会有所帮助,尤其是在需要特别小心字段编号和字段顺序时,对联合会更有帮助。我对查询格式进行了编辑。更好?您的查询中有两次desc,一次在第3行,一次在第8行。你知道吗?错误是关

Sql 对查询进行格式化,使其更易于阅读——例如:将每个选择字段放在其自己的行上——这通常会有所帮助,尤其是在需要特别小心字段编号和字段顺序时,对联合会更有帮助。我对查询格式进行了编辑。更好?您的查询中有两次desc,一次在第3行,一次在第8行。你知道吗?错误是关,sql,ibm-midrange,db2-400,Sql,Ibm Midrange,Db2 400,对查询进行格式化,使其更易于阅读——例如:将每个选择字段放在其自己的行上——这通常会有所帮助,尤其是在需要特别小心字段编号和字段顺序时,对联合会更有帮助。我对查询格式进行了编辑。更好?您的查询中有两次desc,一次在第3行,一次在第8行。你知道吗?错误是关于第一个,而不是第二个。设置查询的格式以使其更易于阅读--例如:将每个选择字段放在自己的行上--这通常会有所帮助,尤其是在需要特别注意字段编号和字段顺序的情况下,对联合更是如此。我对查询格式进行了编辑。更好吗?是的,我猜我错过了这一点是相当盲目




对查询进行格式化,使其更易于阅读——例如:将每个选择字段放在其自己的行上——这通常会有所帮助,尤其是在需要特别小心字段编号和字段顺序时,对联合会更有帮助。我对查询格式进行了编辑。更好?您的查询中有两次
desc
,一次在第3行,一次在第8行。你知道吗?错误是关于第一个,而不是第二个。设置查询的格式以使其更易于阅读--例如:将每个选择字段放在自己的行上--这通常会有所帮助,尤其是在需要特别注意字段编号和字段顺序的情况下,对联合更是如此。我对查询格式进行了编辑。更好吗?是的,我猜我错过了这一点是相当盲目的(而且VS2012在非全屏设置下工作不好)。。。现在我得到了“Column TIMEC cannot qualified”(列TIMEC cannot qualified)。那么您的
b
表中是否有
TIMEC
列?请记住,联合查询结束时的order by默认应用于整个联合结果集。不会有
b.timec
a.timec
。只有
timec
。我想我明白你的意思了。既然
UNION
orderby
中没有
a.timec
列可供
orderby
使用,那么我该如何解决这个问题呢?现在我收到
orderby column timec或结果表中没有的表达式。
现在正在更新发布的查询。是的,我想我是瞎了(而且VS2012在非全屏设置下工作不好)…现在我得到了“列TIMEC不能被限定”。那么,您的
b
表中是否有
timec
列?请记住,联合查询结束时的order by默认应用于整个联合结果集。不会有
b.timec
a.timec
。只有
timec
。我想我明白您的意思了。那么,sinc,我该如何解决这个问题呢e没有
a.timec
列供
UNION
ORDER BY
中使用?现在我收到
ORDER BY column timec或结果表中没有的表达式。
现在更新发布的查询。是的,我猜我很盲目地错过了这一点(而且VS2012在非全屏设置中工作不好)…现在我得到了“无法限定TIMEC列"。那么,您的
b
表中是否有
timec
列?请记住,联合查询结束时的order by默认应用于整个联合结果集。不会有
b.timec
a.timec
。只有
timec
。我想我明白您的意思了。那么,sinc,我该如何解决这个问题呢e没有
a.timec
列供
UNION
ORDER BY
中使用?现在我收到
ORDER BY column timec或结果表中没有的表达式。
现在更新发布的查询。是的,我猜我很盲目地错过了这一点(而且VS2012在非全屏设置中工作不好)…现在我得到了“无法限定TIMEC列"。那么,您的
b
表中是否有
timec
列?请记住,联合查询结束时的order by默认应用于整个联合结果集。不会有
b.timec
a.timec
。只有
timec
。我想我明白您的意思了。那么,sinc,我该如何解决这个问题呢e没有一个
a.timec
列供
UNION
ORDER BY
中使用?现在我收到
ORDER BY column timec或expression not in result table。
现在更新发布的查询。每个查询基本上都获取相同的数据字段,但来自2个不同的AS400库和2个不同的表。我有des在我的第一个查询中,将它们在原始帖子中指定为
LIB1.TABLE1,LIB1.TABLE2
,在我的第二个查询中,将它们指定为
LIB2.TABLE1,LIB2.TABLE2
。@AnalyticLunatic没有捕捉到不同的表。我将删除第二个选项。@D Stanley,现在是新的一期。我已经编辑过了。您或者需要
将这些部分按
排序,使它们成为subq查询或将
timec
添加到输出列。我已经编辑了我的答案。每个查询基本上都是从两个不同的AS400库和两个不同的表中获取相同的数据字段。我在第一次查询中将它们指定为
LIB1.TABLE1,LIB1.TABLE2
,在第二次查询中指定为
LIB2.TABLE1,LIB2.TABLE2
@AnalyticLunatic没有捕获到不同的表。我将删除第二个选项。@D Stanley,新一期。我已经编辑过了。您需要在零件中进行子查询,或者在输出列中添加
timec
。我已经编辑了我的答案。每个查询基本上都获取相同的数据字段,但是来自两个不同的AS400库,有两个不同的表。我在第一次查询中将它们指定为
LIB1.TABLE1,LIB1.TABLE2
,在第二次查询中将它们指定为
LIB2.TABLE1,LIB2.TABLE2
@AnalyticLunatic未捕获到不同的表。我将删除第二个选项。@D Stanley,新版本。我已经编辑了。哟你或者需要在部分中通过子查询
order by
,或者将
timec
添加到输出列中。我编辑了我的答案。每个查询基本上都获取相同的数据字段,但来自两个不同的AS400库和两个不同的表。我在第一次查询的原始帖子中将它们指定为
LIB1.TABLE1,LIB1.TABLE2
在我的第二个查询中,
LIB2.TABLE1,LIB2.TABLE2
@AnalyticLunatic未捕获不同的表。我将删除第二个选项。@D Stanley,现在是新版本。我已经编辑了。您需要通过进行子查询来对零件进行
排序,或者将
timec
添加到输出列中。我已经编辑了我不同意我的回答。
SELECT        
a.memno, 
a.name, 
a.addr1, 
a.addr2, 
a.city, 
a.state, 
a.zip, 
a.sex, 
a.lname, 
a.ssan, 
b.addr1 AS old_addr1, 
b.addr2 AS old_addr2, 
b.city AS old_city, 
b.state AS old_state, 
b.zip AS old_zip

FROM            LIB1.TABLE1 a, LIB2.TABLE2 b

WHERE        (a.memno = b.memno) AND 

(b.groupid = 'P2') AND 
(b.type = 'B') AND 
(b.datec = 20131203) AND 
(a.addr1 <> b.addr1) AND 
(a.addr2 <> b.addr2) AND 
(a.city <> b.city) AND 
(a.state <> b.state) AND 
(a.zip <> b.zip)

ORDER BY b.timec DESC
SELECT        
a.memno, 
a.name, 
a.addr1, 
a.addr2, 
a.city, 
a.state, 
a.zip, 
a.sex, 
a.lname, 
a.ssan, 
b.addr1 AS old_addr1, 
b.addr2 AS old_addr2, 
b.city AS old_city, 
b.state AS old_state, 
b.zip AS old_zip

FROM            LIB2.TABLE1 a, LIB2.TABLE2 b

WHERE        (a.memno = b.memno) AND 
(b.groupid = 'N2') AND 
(b.type = 'B') AND 
(b.datec = 20131203) AND 
(a.addr1 <> b.addr1) AND 
(a.addr2 <> b.addr2) AND 
(a.city <> b.city) AND 
(a.state <> b.state) AND 
(a.zip <> b.zip)

ORDER BY b.timec DESC
SELECT        
a.memno, 
a.name, 
a.addr1, 
a.addr2, 
a.city, 
a.state, 
a.zip, 
a.sex, 
a.lname, 
a.ssan, 
b.addr1 AS old_addr1, 
b.addr2 AS old_addr2, 
b.city AS old_city, 
b.state AS old_state, 
b.zip AS old_zip

FROM            LIB1.TABLE1 a, LIB2.TABLE2 b

WHERE        (a.memno = b.memno) AND 

(b.groupid = 'P2') AND 
(b.type = 'B') AND 
(b.datec = 20131203) AND 
(a.addr1 <> b.addr1) AND 
(a.addr2 <> b.addr2) AND 
(a.city <> b.city) AND 
(a.state <> b.state) AND 
(a.zip <> b.zip)

UNION

SELECT        
a.memno, 
a.name, 
a.addr1, 
a.addr2, 
a.city, 
a.state, 
a.zip, 
a.sex, 
a.lname, 
a.ssan, 
b.addr1 AS old_addr1, 
b.addr2 AS old_addr2, 
b.city AS old_city, 
b.state AS old_state, 
b.zip AS old_zip

FROM            LIB2.TABLE1 a, LIB2.TABLE2 b

WHERE        (a.memno = b.memno) AND 
(b.groupid = 'N2') AND 
(b.type = 'B') AND 
(b.datec = 20131203) AND 
(a.addr1 <> b.addr1) AND 
(a.addr2 <> b.addr2) AND 
(a.city <> b.city) AND 
(a.state <> b.state) AND 
(a.zip <> b.zip)

ORDER BY timec DESC
WHERE a.memno [...snip...] <> b.zipc desc  
                                     ^^^^
SELECT * FROM
    (SELECT a.memno, a.name, 
            a.addr1, a.addr2, a.city, a.state, a.zip, a.sex, a.lname, a.ssan, 
            b.addr1 as old_addr1, b.addr2 as old_addr2, b.city as old_city, b.state as old_state, b.zip as old_zip 
    FROM LIB1.TABLE1 a, LIB1.TABLE2 b 
    WHERE a.memno = b.memno 
      and b.groupid = 'P2' 
      and b.type = 'B' 
      and b.datec =  20131205 
      AND a.addr1 <> b.addr1 
      AND a.addr2 <> b.addr2 
      AND a.city <> b.city 
      AND a.state <> b.state 
      AND a.zip <> b.zipc 
    ORDER BY b.timec desc  
    ) A
UNION
SELECT * FROM    
    (
    SELECT a.memno, a.name, 
           a.addr1, a.addr2, a.city, a.state, a.zip, a.sex, a.lname, a.ssan, 
           b.addr1 as old_addr1, b.addr2 as old_addr2, b.city as old_city, b.state as old_state, b.zip as old_zip 
    FROM LIB2.TABLE1 a, LIB2.TABLE2 b 
    WHERE a.memno = b.memno 
      and b.groupid = 'N2' 
      and b.type = 'B' 
      and b.datec = 20131205 
      AND a.addr1 <> b.addr1 
      AND a.addr2 <> b.addr2 
      AND a.city <> b.city 
      AND a.state <> b.state 
      AND a.zip <> b.zip 
    ORDER BY b.timec desc
    ) B