create table GKP1(W5 varchar(10), x int, y int, Zb int)
create table ELEME(x int, y int, z int)
access и sql
как связать в запросе данные таким образом, чтобы расчитанные значения появлялись напротив соответствующего модельного имени,(т.е W5(модельное имя) - в следующем столбце расчитанное значение, соответствующее этому имени. очень расчитываю на Вашу помощь, я уже запуталась..((
формулы такие:
корень: (Sqr(((gkp1!х-ELEME!X)^2)+((gkp1!y-ELEME!Y)^2)+((gkp1!zb-ELEME!Z)^2)))
и из множества( их больше 10тыс) значений выбрать одно минимальное:
SELECT Min(gkp11.корень) AS min_kor
FROM gkp11;
вот. мне бы хотелось чтобы в одном запросе были все вычисления. у меня получается 2 запроса для одного имени..как быть?
Во-первых, непонятка с таблицами. Таблица все-таки называется W5, а вот это "K6, GKP1." - это поля в ней? Потому что дальше в запросе, вы пишете gkp1!y, как будто таблица это gkp1. А что такое K6 - вообще непонятно...
Так что опишите таблицы в таком формате, например:
Код:
Тогда любой участник форума, который захочет вам помочь, откроет акцесс, выполнит эти скрипты и получит у себя на машине соответствующие таблице. Ему будет легче вам помогать. Далее рекомендуется заполнить таблицы тестовыми данными, например добавить в таблицу GKP1 пару моделей, а в таблицу ELEME несколько пар координат для этих моделей, т.е. написать скриптик вида:
Код:
insert into GKP1(W5, x, y, Zb)
values ('Модель1',1,1,1)
....
insert into ELEME(x, y, z)
values(1,1,1)
values ('Модель1',1,1,1)
....
insert into ELEME(x, y, z)
values(1,1,1)
А потом привести результат, который надо получить.
Тем самым вы создадите площадку для экспериментов.
Единственное что я могу пока сказать, чтоб вам помочь, это то что для связи таблиц используется операция соединения таблиц - JOIN. Критерий соединения выбираете вы сами, как правило это связь по внешнему ключу. Соотв. применительно к вашей ситуации у вас таблица ELEME должна иметь поле, которое бы ссылалось на таблицу GKP1. Либо вы должны сами определить, по какому критерию связывать таблицы, м.б. любое условие, в том числе и по нескольким полям.
После операции соединения, выполняете оперцию группировки по модельному имени и идентификтору, если он есть, а вашу формулу вставляете в агрегрующую функцию min.
Скелет запроса типа такого получится:
Код:
select
w5,
min( Sqr( (g.x-e.x)^2 + (g.y-e.y)^2 + (g.zb-e.z)^2 ) ) as minsqr
from
gkp1 as g
inner join eleme as e on ...ваше условие соединения...
group by
w5
w5,
min( Sqr( (g.x-e.x)^2 + (g.y-e.y)^2 + (g.zb-e.z)^2 ) ) as minsqr
from
gkp1 as g
inner join eleme as e on ...ваше условие соединения...
group by
w5