![]() |
|
Модераторы: gambit |
![]()
|
|
| iddqd |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 16.11.2005 Репутация: нет Всего: 2 |
Это снова я со своим SQL
Есть две таблицы: 1: Код (известен) Глубина Цена 2: (Связана с первой. Может быть до 100 записей, относящихся к первой) Код Связь - для связи с первой таблицей Глубина при снятии И надо высчитать все по формуле: А - Таблица 1 , столбец: Глубина В - это константа = 2. С - Таблица 2, столбец: Глубина при снятии (причем надо получить это из последней записи) S - Таблица 1, столбец: Цена. E=(S / (A - B) * (C - B)) Пожалуйста, помогите. Не могу получить последнюю запись для "C" и нормально написать формулу? Надо делать подзапросы? Если да, то какие? -------------------- |
|||
|
||||
| darkness |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 5.8.2006 Где: Москва Репутация: нет Всего: 1 |
Из последней записи, как я понимаю которая содержит определённый первичный ключ взятый из Таблицы 1 Если конечно я правильно понял...
Добавлено @ 15:41 Другой вопрос: что из себя представляют у тебя в таблицах "Код" Какой тип? Это сообщение отредактировал(а) darkness - 26.6.2007, 15:45 --------------------
Вина каких стран Вы предпочитаете в это время суток? (Булгаков. "Мастер и Маргарита") |
||||
|
|||||
| iddqd |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 16.11.2005 Репутация: нет Всего: 2 |
Код - счетчик.
Т2.Связь->Т1.Код Тот запрос, который ты написал совсем не про то :( Пример таблиц: 1: Код Глубина Цена 1----24--------3500 2----26--------4200 3----16--------3900 2: Код Связь Глубина при снятии 1----1-------22 2----1-------19 3----2-------17 4----1-------9 5----3-------14 6----2-------15 7----2-------6 А хочется получить по формуле: Например, по второй записе: E = (4200 / (26 - 2) * (6 - 2)) = 700. 4200 - цена 26 - глубина 2 - константа 6 - глубина при снятии из последней записи 2 - константа -------------------- |
|||
|
||||
| darkness |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 5.8.2006 Где: Москва Репутация: нет Всего: 1 |
iddqd, подожди я тебе написал как получить переменную C.... то что ты сейчас привёл я как раз и подразумевал...
Покажи, что в моём запросе не подходит для твоей ситуации... Это сообщение отредактировал(а) darkness - 26.6.2007, 16:59 --------------------
Вина каких стран Вы предпочитаете в это время суток? (Булгаков. "Мастер и Маргарита") |
|||
|
||||
| iddqd |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 16.11.2005 Репутация: нет Всего: 2 |
darkness, извини, что я так отреагировал. Немного недопонял тебя
Но как теперь эту C подставить в основную формулу для вычислений? Добавлено через 2 минуты и 57 секунд "В качестве входных данных запрос должен иметь хотя бы одну таблицу или запрос" и ошибка встает на следующее слово, после С. -------------------- |
|||
|
||||
| darkness |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 5.8.2006 Где: Москва Репутация: нет Всего: 1 |
iddqd, я бы на помощь призавл такую замечательную вещь как Stored Procedure в качестве оболочки, которая принимает один параметр это Код из таблицы 1
а внутрь бы запихнул огрмный Вложенный Select Запрос, тем самым можно избежать вообще применение переменных, (хотя на мой взгляд переменные облегчают жизнь намного, особенно во время отладки)... т.е.
где P как раз тот входной параметр и есть.... Примерно так... Это сообщение отредактировал(а) darkness - 26.6.2007, 17:40 --------------------
Вина каких стран Вы предпочитаете в это время суток? (Булгаков. "Мастер и Маргарита") |
|||
|
||||
| iddqd |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 16.11.2005 Репутация: нет Всего: 2 |
Студия:
Аксес: "В качестве входных данных запрос должен иметь хотя бы одну таблицу или запрос" -------------------- |
|||
|
||||
| darkness |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 5.8.2006 Где: Москва Репутация: нет Всего: 1 |
iddqd, ты лучше покажи исходный код...
Добавлено через 1 минуту и 27 секунд так стоп! Аксес, говоришь..., в нём я не очень силён... не знаю как там у него с хранимыми процедурами и т.д.... Единнственное скажу, что P - как то ты всё равно должен определить... --------------------
Вина каких стран Вы предпочитаете в это время суток? (Булгаков. "Мастер и Маргарита") |
|||
|
||||
| iddqd |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 16.11.2005 Репутация: нет Всего: 2 |
Я прям в аксесе его выполнить пытаюсь. Блин, вроде такой простой запрос, а такие вещи не получаются :( Если есть возможность, вот БД (600 кб): http://webfile.ru/1452069 http://www.rapidshare.ru/326815 Таблицы Шины и Движение соответственно Т1 и Т2. Спасибо! -------------------- |
|||
|
||||
| darkness |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 5.8.2006 Где: Москва Репутация: нет Всего: 1 |
iddqd, у меня нет Аксеса с собой сейчас...
Проверь запрос внимательно, он такой?:
--------------------
Вина каких стран Вы предпочитаете в это время суток? (Булгаков. "Мастер и Маргарита") |
|||
|
||||
| kedicik |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 12.4.2007 Репутация: нет Всего: нет |
Не работает так как надо!
Вот в Access сделала ваш запрос. и выполнила. чтобы найти последнюю запись. Надо начинать с этого. Постепенно. SELECT [ГЛУБИНА ПРИ СНЯТИИ] FROM Движение WHERE Движение.Код=(SELECT MAX(Движение.Код) FROM Движение WHERE Движение.связь=2); Движение.Код=(SELECT ....... воспринимается как входной параметр . А здесь никакие входные параметры не нужны. Уже здесь ошибка. Поэтому надо решить первую часть пока |
|||
|
||||
| kedicik |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 12.4.2007 Репутация: нет Всего: нет |
сори! выдавало все равно неправильно. Но поменяла названия длинных полей с пробелами на нормальные и это заработало. Может проблема в длинных наименованиях полей? поменять пока и попробовать чтобы исключить эту ошибку?
|
|||
|
||||
| darkness |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 5.8.2006 Где: Москва Репутация: нет Всего: 1 |
ммм... посмотрите топы выше.. это как раз я и делал...
За аксес я отвечать не берусь, очень плохо знаю его... Попоробовал подобное в MySql всё прошло... Это сообщение отредактировал(а) darkness - 26.6.2007, 19:02 --------------------
Вина каких стран Вы предпочитаете в это время суток? (Булгаков. "Мастер и Маргарита") |
||||
|
|||||
| iddqd |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 16.11.2005 Репутация: нет Всего: 2 |
Сделал нечто подобное:
Только результат немного не тот :( Никак ошибку найти не могу( Добавлено через 7 минут и 18 секунд
-------------------- |
||||
|
|||||
| darkness |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 5.8.2006 Где: Москва Репутация: нет Всего: 1 |
iddqd, навскидку (!могу ошибаться!) - по-моему мало условий равенства.... после выражения добавь
AND т2.связь=т1.Ключ AND т1.Ключ=1 Главное ты понял в каком напрвлении копать! Думаю разберёшься.. --------------------
Вина каких стран Вы предпочитаете в это время суток? (Булгаков. "Мастер и Маргарита") |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |