假设我经过如干个子查询按照 ORDER BY A_NAME,B_NAME后,得到以下的数据A_name B_name C_name
A1 A1_B1 60
A1 A1_B2 80
A1 A1_B3 100
A1 A1_B4 120A2 A2_B1 70
A2 A2_B2 90
A2 A2_B3 50
A2 A2_B4 100A3 A3_B1 90
A3 A3_B2 80
A3 A3_B3 100
A3 A3_B4 120我想比较C_name这列中在同一个 A_name中按照 B_name排序排序的 C_name是不是依次增大的,如果不是就把这组数据找出来,或者做标记,比如上面的数据,最终我需要得到 A2,A3这两组数据,或者在给这两组数据做个标记。我的思路是写一个函数来比较C_name,但是不知道怎么实现,可以在函数中使用游标,各位大神有什么建议吗?十万火急的.
这最终是做成一个报表数据中错误核查的,同一个A_name中 按照 B_name 排序,C_name应该一次增大,否则就是错误数据,现在就是把错误数据找出来
A1 A1_B1 60
A1 A1_B2 80
A1 A1_B3 100
A1 A1_B4 120A2 A2_B1 70
A2 A2_B2 90
A2 A2_B3 50
A2 A2_B4 100A3 A3_B1 90
A3 A3_B2 80
A3 A3_B3 100
A3 A3_B4 120我想比较C_name这列中在同一个 A_name中按照 B_name排序排序的 C_name是不是依次增大的,如果不是就把这组数据找出来,或者做标记,比如上面的数据,最终我需要得到 A2,A3这两组数据,或者在给这两组数据做个标记。我的思路是写一个函数来比较C_name,但是不知道怎么实现,可以在函数中使用游标,各位大神有什么建议吗?十万火急的.
这最终是做成一个报表数据中错误核查的,同一个A_name中 按照 B_name 排序,C_name应该一次增大,否则就是错误数据,现在就是把错误数据找出来
是的,必须要写SQL语句来,写一个存储过程或者函数都行,要是可以用Java代码实现的话我就不愁了,有什么好的建议吗
是的,必须要写SQL语句来,写一个存储过程或者函数都行,要是可以用Java代码实现的话我就不愁了,有什么好的建议吗
SELECT
*
FROM
tabl
WHERE A_name IN
(SELECT
z.A_name
FROM
(SELECT
t.A_name,
t.B_name,
t.C_name,
(SELECT
COUNT(1)
FROM
tabl
WHERE A_name <= t.A_name
AND B_name <= t.B_name) count1,
(SELECT
COUNT(1)
FROM
tabl
WHERE A_name <= t.A_name
AND B_name <= t.B_name
AND C_name <= t.C_name) count2
FROM
tabl t) z
WHERE z.count1 != z.count2)
ORDER BY A_name,
B_name ;
是的,必须要写SQL语句来,写一个存储过程或者函数都行,要是可以用Java代码实现的话我就不愁了,有什么好的建议吗
SELECT
*
FROM
tabl
WHERE A_name IN
(SELECT
z.A_name
FROM
(SELECT
t.A_name,
t.B_name,
t.C_name,
(SELECT
COUNT(1)
FROM
tabl
WHERE A_name <= t.A_name
AND B_name <= t.B_name) count1,
(SELECT
COUNT(1)
FROM
tabl
WHERE A_name <= t.A_name
AND B_name <= t.B_name
AND C_name <= t.C_name) count2
FROM
tabl t) z
WHERE z.count1 != z.count2)
ORDER BY A_name,
B_name ;如果我是要写成一个函数,传入A_NAME的值怎么实现和调用这个函数,因为这三条数据也是经过几个表然后子查询到的,我现在研究一下你的语句,谢谢了,这是直接我要查询的语句中写吗?
是的,必须要写SQL语句来,写一个存储过程或者函数都行,要是可以用Java代码实现的话我就不愁了,有什么好的建议吗
SELECT
*
FROM
tabl
WHERE A_name IN
(SELECT
z.A_name
FROM
(SELECT
t.A_name,
t.B_name,
t.C_name,
(SELECT
COUNT(1)
FROM
tabl
WHERE A_name <= t.A_name
AND B_name <= t.B_name) count1,
(SELECT
COUNT(1)
FROM
tabl
WHERE A_name <= t.A_name
AND B_name <= t.B_name
AND C_name <= t.C_name) count2
FROM
tabl t) z
WHERE z.count1 != z.count2)
ORDER BY A_name,
B_name ;
不用写存储过程和函数更好了,就是A是在另一个表上的,B和C在同一个表上
是的,必须要写SQL语句来,写一个存储过程或者函数都行,要是可以用Java代码实现的话我就不愁了,有什么好的建议吗
SELECT
*
FROM
tabl
WHERE A_name IN
(SELECT
z.A_name
FROM
(SELECT
t.A_name,
t.B_name,
t.C_name,
(SELECT
COUNT(1)
FROM
tabl
WHERE A_name <= t.A_name
AND B_name <= t.B_name) count1,
(SELECT
COUNT(1)
FROM
tabl
WHERE A_name <= t.A_name
AND B_name <= t.B_name
AND C_name <= t.C_name) count2
FROM
tabl t) z
WHERE z.count1 != z.count2)
ORDER BY A_name,
B_name ;
不用写存储过程和函数更好了,就是A是在另一个表上的,B和C在同一个表上
是的,必须要写SQL语句来,写一个存储过程或者函数都行,要是可以用Java代码实现的话我就不愁了,有什么好的建议吗
SELECT
*
FROM
tabl
WHERE A_name IN
(SELECT
z.A_name
FROM
(SELECT
t.A_name,
t.B_name,
t.C_name,
(SELECT
COUNT(1)
FROM
tabl
WHERE A_name <= t.A_name
AND B_name <= t.B_name) count1,
(SELECT
COUNT(1)
FROM
tabl
WHERE A_name <= t.A_name
AND B_name <= t.B_name
AND C_name <= t.C_name) count2
FROM
tabl t) z
WHERE z.count1 != z.count2)
ORDER BY A_name,
B_name ;
不用写存储过程和函数更好了,就是A是在另一个表上的,B和C在同一个表上
只要把tabl 替换成你说的表的关联子查询或者视图就可以了
是的,必须要写SQL语句来,写一个存储过程或者函数都行,要是可以用Java代码实现的话我就不愁了,有什么好的建议吗
SELECT
*
FROM
tabl
WHERE A_name IN
(SELECT
z.A_name
FROM
(SELECT
t.A_name,
t.B_name,
t.C_name,
(SELECT
COUNT(1)
FROM
tabl
WHERE A_name <= t.A_name
AND B_name <= t.B_name) count1,
(SELECT
COUNT(1)
FROM
tabl
WHERE A_name <= t.A_name
AND B_name <= t.B_name
AND C_name <= t.C_name) count2
FROM
tabl t) z
WHERE z.count1 != z.count2)
ORDER BY A_name,
B_name ;
不用写存储过程和函数更好了,就是A是在另一个表上的,B和C在同一个表上
是的,必须要写SQL语句来,写一个存储过程或者函数都行,要是可以用Java代码实现的话我就不愁了,有什么好的建议吗
SELECT
*
FROM
tabl
WHERE A_name IN
(SELECT
z.A_name
FROM
(SELECT
t.A_name,
t.B_name,
t.C_name,
(SELECT
COUNT(1)
FROM
tabl
WHERE A_name <= t.A_name
AND B_name <= t.B_name) count1,
(SELECT
COUNT(1)
FROM
tabl
WHERE A_name <= t.A_name
AND B_name <= t.B_name
AND C_name <= t.C_name) count2
FROM
tabl t) z
WHERE z.count1 != z.count2)
ORDER BY A_name,
B_name ;
不用写存储过程和函数更好了,就是A是在另一个表上的,B和C在同一个表上
只要把tabl 替换成你说的表的关联子查询或者视图就可以了那就是查了半天都么有数据出来