Код:
package ru.skyb.scripts.global.report;
import ru.bitel.bgbilling.kernel.script.server.dev.GlobalScriptBase;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;
import java.math.BigDecimal;
import java.sql.*;
import java.util.*;
import java.util.Date;
import bitel.billing.common.TimeUtils;
import bitel.billing.server.contract.bean.*;
public class HouseDiff
extends GlobalScriptBase
{
@Override
public void execute( Setup setup1, ConnectionSet connectionSet2 )
throws Exception
{
Connection con = connectionSet2.getConnection();
/*Calendar calendar = new GregorianCalendar();
GregorianCalendar nowDate = (GregorianCalendar) calendar.clone();//клонируем дату для дальнейшей работы
nowDate.get(Calendar.DATE);
GregorianCalendar sqlDate = (GregorianCalendar) calendar.clone();
Date dateSql = TimeUtils.convertCalendarToSqlDate(sqlDate);
Date dateNow = TimeUtils.convertCalendarToDate(nowDate);//переводим дату в тип Date с типа Calendar*/
String FirstMonth = "SELECT count(c.id),cpt2.address,sum(cb.summa3) FROM contract AS c " +
"LEFT JOIN contract_parameter_type_2 AS cpt2 ON c.id=cpt2.cid " +
"LEFT JOIN contract_balance AS cb on c.id=cb.cid " +
"WHERE cpt2.pid=1 AND gr&(1<<5)>0 AND cb.yy=2013 AND cb.mm=2 AND cb.summa3 > 0 " +
"GROUP BY cpt2.hid ORDER BY count(c.id)";
String SecondMonth = "SELECT count(c.id),cpt2.address,sum(cb.summa3) FROM contract AS c " +
"LEFT JOIN contract_parameter_type_2 AS cpt2 ON c.id=cpt2.cid " +
"LEFT JOIN contract_balance AS cb on c.id=cb.cid " +
"WHERE cpt2.pid=1 AND gr&(1<<5)>0 AND cb.yy=2013 AND cb.mm=4 AND cb.summa3 > 0 " +
"GROUP BY cpt2.hid ORDER BY count(c.id)";
//print("QueryIdAddress=> " + FirstMonth);
PreparedStatement FirstPs = con.prepareStatement( FirstMonth );
ResultSet FirstRs = FirstPs.executeQuery();
int FirstCid;
int SecondCid;
String SecondAddress;
String FirstAddress;
BigDecimal SecondSumma3;
BigDecimal FirstSumma3;
int i = 0;
//int j = 0;
int DiffCid;
BigDecimal DiffSumma3;
//print("SecondMonth => " + SecondMonth);
PreparedStatement SecondPs = con.prepareStatement( SecondMonth );
ResultSet SecondRs = SecondPs.executeQuery();
while ( FirstRs.next() && SecondRs.next())
{
//print ("address => " + address + " " + cid + " summa3=> " + summa3);
i++;
//j++;
FirstCid = FirstRs.getInt( 1 );
FirstAddress = FirstRs.getString( 2 );
FirstSumma3 = FirstRs.getBigDecimal( 3 );
SecondCid = SecondRs.getInt( 1 );
SecondAddress = SecondRs.getString( 2 );
SecondSumma3 = SecondRs.getBigDecimal( 3 );
//print ("FirstCid => " + FirstCid + " FirstAddress => " + FirstAddress + " FirstSumma3 => " + FirstSumma3 + "\n" +
//" SecondCid => " + SecondCid + " SecondAddress => " + SecondAddress + " SecondSumma3 => " + SecondSumma3 );
DiffCid = SecondCid - FirstCid;
DiffSumma3 = SecondSumma3.subtract(FirstSumma3);
print ("Адресс " + FirstAddress + " абоненты " + DiffCid + " Наработка " + DiffSumma3 + " абоненты " + FirstCid + " Наработка " +
FirstSumma3 + " абоненты " + SecondCid + " Наработка " + SecondSumma3);
//print("кол-во 1 " +i + "\n" + "кол-во 2 " +j + "cid " +FirstCid);
}
print("кол-во " +i );
}
}
Вот что сделать нужно, но при первой же выборке FirstCid = FirstRs.getInt( 1 ); уже дает не те данные,, когда делаю просто sql запрос, то все выводится правильно, а вот если вот так скриптом - то не верно
_________________
Код:
Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegramСтиль программирования - пьяный мастерстер
Разработка мобильных приложений