В приведенном ниже коде я сравниваю два набора результатов таблиц S_R_VAL и R_VAL. Мне нужно сравнить S_NUMBER (из таблицы S_R_VAL) и S_NO (из таблицы R_VAL). Сравнивая я получаю эту ошибку «java.lang.RuntimeException: два результирующих содержит различное количество столбцов Пожалуйста, помогите в исправлении этой ошибкиСравнение двух результатов двух разных таблиц
String SSQ = "select DISTINCT S_NUMBER from OTG.S_R_VAL" +
" WHERE R_TS = (SELECT MAX(R_TS) FROM OTG.S_R_VAL) order by S_NUMBER";
String SDS = "SELECT DISTINCT S_NUMBER FROM OTG.S_R_VAL AS STG WHERE S_NUMBER NOT IN" +
"(SELECT S_NO FROM OTG.R_VAL AS REV WHERE STG.S_NUMBER = REV.S_NO)";
String SSR = "SELECT DISTINCT S_NO FROM OTG.R_VAL where S_NO != 'NULL' order by S_NO";
String SSO = "Select O_UID from OTG.OPTY where C_S_NO IN" +
"(SELECT DISTINCT S_NUMBER FROM OTG.S_R_VAL AS STG WHERE S_NUMBER NOT IN(SELECT S_NO FROM OTG.R_VAL AS REV WHERE STG.S_NUMBER = REV.S_NO))";
//Statement statement;
try {
connection = DatabaseConnection.getCon();
statement = connection.createStatement();
statement1 = connection.createStatement();
ResultSet SQ = statement.executeQuery(SSQ);
ResultSet DS = statement.executeQuery(SDS);
ResultSet SR = statement.executeQuery(SSR);
ResultSet SO = statement.executeQuery(SSO);
while (rs.next() && SR.next(){
String res1 = rs.getString("S_NUMBER");
String res2 = SR.getString("S_NO");
StringBuffer updateQuery = new StringBuffer();
if (res1.equals(res2)) {
throw new RuntimeException(String.format("%s and %s aren't equal at common position %d",
res1, res2));
}else
{
throw new RuntimeException("The two ResultSets contains different number of columns!");
}
}
connection.commit();
Ваш код кажется очень странным. Вы сравниваете результат с 5 столбцами ('SSQ') с результатом с 1 столбцом (' SSR') - вы только сравниваете 'S_NUMBER' с' S_NO'. Это можно сделать гораздо эффективнее с использованием одного SQL-запроса (например, с оператором 'EXCEPT'). Выполнение этой строки за строкой, особенно без «ЗАКАЗА BY», скорее всего, будет работать неправильно. –
Hi, Ya, u r правильный. Я сравниваю S_NUMBER с S_NO. Можете ли вы, пожалуйста, помочь, как правильно их исправить? Появляется ошибка .. когда, сравнение. – 123HIS