Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.19;
Скачать: CL | DM;

Вниз

погрешность   Найти похожие ветки 

 
RAM   (2003-11-26 12:34) [0]

доброго дня!
есть запрос, в первом у меня идет выборка по дате и выдает данные по районам простроченых ордеров... а второй запрос подсчитывает сколько по каждому району этих самых ордеров
цифры разбегаются ... чот я делаю не так?

Query1.close;
Query1.Sql.Clear;
Query1.Sql.Add("SELECT O."OR", K.RJ, V.NL, V.GR, O.AR, O.SK, O.SK1");
Query1.Sql.Add("FROM ORDP O, KRJ K, VR V");
Query1.Sql.Add("WHERE (O.KR = K.KR) AND (O.VR = V.VR) AND (SK < :mydata) AND (SK1 < :mydata)");
Query1.Sql.Add("ORDER BY V.GR, K.RJ, O."OR"");
mydata:=StrToDate(Edit1.Text);
Query1.ParamByName("mydata").AsDateTime:=mydata;
Query1.Open;
Query1.FetchAll;
i:=Query1.RecordCount;
label3.caption:=IntToStr(i);

и второй
Query2.close;
Query2.Sql.Clear;
Query2.Sql.Add("SELECT K.RJ, COUNT(*) AS R.OUT");
Query2.Sql.Add("FROM RAJ R, KRJ K, ORDP O");
Query2.Sql.Add("WHERE (R.KR = K.KR) AND (O.KR = K.KR) AND (SK < :mydata) AND (SK1 < :mydata)");
Query2.Sql.Add("GROUP by K.RJ");
Query2.Sql.Add("ORDER BY K.RJ");
mydata:=StrToDate(Edit1.Text);
Query2.ParamByName("mydata").AsDateTime:=mydata;
Query2.Open;


 
Sandman25 ©   (2003-11-26 12:39) [1]

1."FROM ORDP O, KRJ K, VR V"
2."FROM RAJ R, KRJ K, ORDP O"

KRJ.KR разрешает NULL?
А ODPR.VR?


 
Johnmen ©   (2003-11-26 12:40) [2]

>цифры разбегаются

Какие именно ?


 
RAM   (2003-11-26 13:02) [3]

2Sandman25: KRJ.KR - код района там от 1 до 14
ODPR.VR - код вида работ

2Johnmen: количество ордеров отвечающих запросу 1 которое выводится в лейбл и сума их по районам(количество ордеров по каждому району) которое выводится в R.OUТ


 
Sandman25 ©   (2003-11-26 13:04) [4]

[3] RAM (26.11.03 13:02)

Второй запрос тоже возвращает несколько записей. Их сумма считается правильно? Вы этот код не показали.


 
RAM   (2003-11-26 13:11) [5]

число первого запроса меньше второго
что мне нужно добавить чтобы правельно считало....
вернее чтобы бы были число1=числу2


 
Sandman25 ©   (2003-11-26 13:12) [6]

Покажите, как Вы считате вторую сумму.


 
RAM   (2003-11-26 13:12) [7]

сума районов по второму запросу больше чем в первом запросе


 
RAM   (2003-11-26 13:17) [8]

на калькуляторе!
выдает количество простроченых ордеров по районам в зависемости от даты в первом гриде, во втором гриде устраняет повторяющиеся записи и показывает сколько по каждому району этих самых ордеров ... вот я суму подбиваю, и то что у меня в лейбле 1-го запроса с этой самой сумой и не сходится


 
RAM   (2003-11-26 13:18) [9]

если записей немного то сходится.. когда увеличивается количество записей то и погрешность растет.... в чем тут дело?


 
Sandman25 ©   (2003-11-26 13:20) [10]

Проверяется это так:

select count(*)
FROM ORDP O, KRJ K, VR V
where ... из первого

select count(*)
from RAJ R, KRJ K, ORDP O
where ...из второго

После сравнения уже можно будет думать, в чем ошибка.


 
Sandman25 ©   (2003-11-26 13:21) [11]

[9] RAM (26.11.03 13:18)

Понятно. Во втором select тоже нужно делать FecthAll, или в гриде скроллировать до конца.


 
RAM   (2003-11-26 13:37) [12]

помогите програмно реализовать у меня чет не выходит


 
RAM   (2003-11-26 13:38) [13]

помогите програмно реализовать у меня чет не выходит


 
Sandman25 ©   (2003-11-26 13:41) [14]

Query2.Open;
S := 0;
while not Query2.EoF do
begin
S := S + Query2.Fields[1].AsInteger;
Query2.Next;
end;

Label2.Caption := IntToStr(S);


 
RAM   (2003-11-26 13:49) [15]

оно сумирует и выдает суму сколько ордеров по каждому району у меня
но эта цифра и не совподает с цифрой первого запросаб она больше


 
RAM   (2003-11-26 14:01) [16]

в чем ошибка?

Query1.close;
Query1.Sql.Clear;
Query1.Sql.Add("SELECT O."OR", K.RJ, V.NL, V.GR, O.AR, O.SK, O.SK1");
Query1.Sql.Add("FROM ORDP O, KRJ K, VR V");
Query1.Sql.Add("WHERE (O.KR = K.KR) AND (O.VR = V.VR) AND (SK < :mydata) AND (SK1 < :mydata)");
Query1.Sql.Add("ORDER BY V.GR, K.RJ, O."OR"");
mydata:=StrToDate(Edit1.Text);
Query1.ParamByName("mydata").AsDateTime:=mydata;
Query1.Open;
Query1.FetchAll;
i:=Query1.RecordCount;
label3.caption:=IntToStr(i);

Query2.close;
Query2.Sql.Clear;
Query2.Sql.Add("SELECT K.RJ, COUNT(*) AS R.OUT");
Query2.Sql.Add("FROM RAJ R, KRJ K, ORDP O");
Query2.Sql.Add("WHERE (R.KR = K.KR) AND (O.KR = K.KR) AND (SK < :mydata) AND (SK1 < :mydata)");
Query2.Sql.Add("GROUP by K.RJ");
Query2.Sql.Add("ORDER BY K.RJ");
mydata:=StrToDate(Edit1.Text);
Query2.ParamByName("mydata").AsDateTime:=mydata;
Query2.Open;
S := 0;
while not Query2.EoF do
begin
S := S + Query2.Fields[1].AsInteger;
Query2.Next;
end;
Label2.Caption := IntToStr(S);


 
RAM   (2003-11-26 14:01) [17]

в чем ошибка?

Query1.close;
Query1.Sql.Clear;
Query1.Sql.Add("SELECT O."OR", K.RJ, V.NL, V.GR, O.AR, O.SK, O.SK1");
Query1.Sql.Add("FROM ORDP O, KRJ K, VR V");
Query1.Sql.Add("WHERE (O.KR = K.KR) AND (O.VR = V.VR) AND (SK < :mydata) AND (SK1 < :mydata)");
Query1.Sql.Add("ORDER BY V.GR, K.RJ, O."OR"");
mydata:=StrToDate(Edit1.Text);
Query1.ParamByName("mydata").AsDateTime:=mydata;
Query1.Open;
Query1.FetchAll;
i:=Query1.RecordCount;
label3.caption:=IntToStr(i);

Query2.close;
Query2.Sql.Clear;
Query2.Sql.Add("SELECT K.RJ, COUNT(*) AS R.OUT");
Query2.Sql.Add("FROM RAJ R, KRJ K, ORDP O");
Query2.Sql.Add("WHERE (R.KR = K.KR) AND (O.KR = K.KR) AND (SK < :mydata) AND (SK1 < :mydata)");
Query2.Sql.Add("GROUP by K.RJ");
Query2.Sql.Add("ORDER BY K.RJ");
mydata:=StrToDate(Edit1.Text);
Query2.ParamByName("mydata").AsDateTime:=mydata;
Query2.Open;
S := 0;
while not Query2.EoF do
begin
S := S + Query2.Fields[1].AsInteger;
Query2.Next;
end;
Label2.Caption := IntToStr(S);


 
Johnmen ©   (2003-11-26 14:27) [18]

Sandman25 © (26.11.03 13:20)



Страницы: 1 вся ветка

Текущий архив: 2003.12.19;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.019 c
1-62141
loki128
2003-12-07 12:54
2003.12.19
COM


6-62178
BAPBAP
2003-10-22 17:56
2003.12.19
TIdTCPClient и TIdTCPServer на одном порту.


3-61914
Илайдж
2003-11-27 13:20
2003.12.19
Результат exec sp_sqlexec @sqlstr...


3-61901
Olga_Oo
2003-11-27 13:40
2003.12.19
Qreport


3-61909
Рамиль
2003-11-27 08:17
2003.12.19
Источник данных ODBC