Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.12.19;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.013 c
1-62032
Fast
2003-12-06 12:23
2003.12.19
ReadOnly для всех.


1-62117
Eagle Owl
2003-12-07 16:41
2003.12.19
Сжатие данных...


14-62250
BlackTiger
2003-11-25 15:09
2003.12.19
Как вам Yukon (новый MSSQL)? Я - тащусь!


3-61922
DBDev
2003-11-24 13:10
2003.12.19
как получить будущее значение ID после опреации Insert?


1-62009
Denis S.
2003-12-09 13:37
2003.12.19
Консольное приложение и создание OLE - объектов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский