Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

access и sql

74K
30 августа 2011 года
Ух ты
1 / / 30.08.2011
подскажите пожалуйста...Вот какая ситуация:существует 2 таблицы, одна с модельными именами W5(в таблице находятся x y,Zb-значения фиксированные..), K6, GKP1...) и вторая таблица "Eleme" со значениями (X,Y,Z) и на основании этих таблиц надо получить запрос который будет расчитывать корень и минимальное значение для каждого модельного имени закрепленного из 1 таблицы(их около 19 значений).

как связать в запросе данные таким образом, чтобы расчитанные значения появлялись напротив соответствующего модельного имени,(т.е 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 запроса для одного имени..как быть?
385
30 августа 2011 года
SomewherSomehow
477 / / 25.07.2004
Помочь вам можно, только уж больно путанно вы задачу объяснили.
Во-первых, непонятка с таблицами. Таблица все-таки называется W5, а вот это "K6, GKP1." - это поля в ней? Потому что дальше в запросе, вы пишете gkp1!y, как будто таблица это gkp1. А что такое K6 - вообще непонятно...
Так что опишите таблицы в таком формате, например:
 
Код:
create table GKP1(W5 varchar(10), x int, y int, Zb int)
create table ELEME(x int, y int, z int)

Тогда любой участник форума, который захочет вам помочь, откроет акцесс, выполнит эти скрипты и получит у себя на машине соответствующие таблице. Ему будет легче вам помогать. Далее рекомендуется заполнить таблицы тестовыми данными, например добавить в таблицу GKP1 пару моделей, а в таблицу ELEME несколько пар координат для этих моделей, т.е. написать скриптик вида:
 
Код:
insert into GKP1(W5, x, y, Zb)
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
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог