![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
И снова они. SQL запросы. [D7, MS Access ]
RustiK © (2004-02-26 12:44:00)Здраствуйте все.
Не судите строго.
Есть ворос... и три таблицы a(code, quantity) , b(code, quantity), с(code, quantity).
В a.codes храняться все возможные варианты записей. Мне нужно объединить эти таблицы так , чтобы мне показывало записи поля code и выводились бы только те, которые есть в таблице b и с. Записи b.code и a.code не идетичны и могут не совпадать по порядку.
Потом отдельно далжны выводиться a.quantity, b.quantity и с.quantity.
то есть вот так
codes a.quantity b.quantity с.quantity.
1
2
3
4
.
.
.
n
две таблици соединить смог, а вот три никак. Прошу помощи.
sniknik (2004-02-26 14:16:00) [1]Johnmen © (26.02.04 13:28) [27]
> А неявно соединить тоже нельзя ?
> Вместо джоинов WHERE a.code=b.code AND a.code=c.code
можно, но сам понимаеш никакой гибкости, left/right join не сделаеш (такие "феньки" как a.code*=b.code или += / =+, сдесь не проходят).
RustiK (2004-02-26 14:14:00) [2]
> существующие поля
ошибка
имеллось в виду в отчете выводятся
RustiK (2004-02-26 14:13:00) [3]Да вот база материалы приход расход
сама загвостка : вывод баланса с (допустим ) 1 числа по 30.
существующие поля
code (initial balans value) (store in value) (store out value) (balans value)
загвостка в том что баланс просчитывается с определенного дня до друго определенного и вот баланс на первое число надо сначала вычислить, потом вхоядящее количество материала надо вычислить и конечный баланс на 30 число
RustiK (2004-02-26 14:08:00) [4]Оказывается можно.
Все тема закрыта. Всем огромное спасибо, особенно SPIRIT ©
SPIRIT (2004-02-26 14:03:00) [5]select a.code, a.quantity, b.quantity, c.quantity,b.date,c.date
from ((a
inner join b on a.code = b.code)
left outer join c on c.code = a.code)
может так ....
SPIRIT (2004-02-26 13:54:00) [6]Мне вот кажется , что таблички можно по другому спроектировать
ты расскажи, что за база
SPIRIT (2004-02-26 13:53:00) [7]select a.code,b.date,c.date
from ((a
left outer join b on a.code = b.code)
left outer join c on c.code = b.code)
RustiK (2004-02-26 13:39:00) [8]ясно тогда лучше джоин
а интересно можно сюда добавить дату из таблиц b и с, в а таблице даты нет
SPIRIT (2004-02-26 13:33:00) [9]надо определяться .. либо джоим .. либо where
лучше джоин !
Johnmen (2004-02-26 13:28:00) [10]>sniknik © (26.02.04 13:15) [20]
А неявно соединить тоже нельзя ?
Вместо джоинов WHERE a.code=b.code AND a.code=c.code
RustiK (2004-02-26 13:26:00) [11]Да забыл сказать что заработало с Like в место =
и в конце добавил
WHERE not (b.quantity is null) and not (c.quantity is null);
хотя теперь не выводит значения b.quantity, которе null для c.quantity
мда...
помогите еще раз
RustiK (2004-02-26 13:21:00) [12]Есть заработала. Тока при выводе запроса запрашивет какоето значение для c.quantity
SPIRIT (2004-02-26 13:17:00) [13]
> sniknik © (26.02.04 13:15) [20]
знал бы - не старался
sniknik (2004-02-26 13:17:00) [14]RustiK © (26.02.04 13:09) [17]
> то что у него sql синтаксис немного извращенный и отличный от простого
немного ?! %о))))
Sandman25+1 (2004-02-26 13:17:00) [15][19] Johnmen © (26.02.04 13:13)
Мне пароль уже не нужен. Буду очень редко появляться на сайте со следующей неделе.
Извиняюсь за offtopic.
SPIRIT (2004-02-26 13:16:00) [16]
> RustiK © (26.02.04 13:01) [11]
в акцесс весь джоин надо в скобки брать
а вообще я тебе советую в самом акцесе писать запрос а потом текст запроса в делфи таскать ..
> говорит (missing operator) in query expression 'a.code like
> b.code (LEFT OUTER JOIN c ON a.code like c.code )'
sniknik (2004-02-26 13:15:00) [17]вообщето для access простое добавление еще одного джойна не работает. надо так (как бы с вложением, и чем больше обьеденяеш тем больше скобок)
SELECT a.code, a.quantity, b.quantity, c.quantity
FROM (a INNER JOIN b ON a.code = b.code) INNER JOIN c ON a.code = c.code
Johnmen (2004-02-26 13:13:00) [18]>модераторы
Прошу прощения за злостный оффтоп.
>Sandman25+1 (26.02.04 13:08) [16]
Если забыл, так спроси приватно у McSimm ©, он напомнит.
А 25+1 не воспринимается адекватно...:)
>RustiK © (26.02.04 13:09) [17]
>синтаксис немного извращенный
В чем это выражается ?
RustiK (2004-02-26 13:11:00) [19]ставлю я равно ( = ) и все равно тоже самая ошибка
RustiK (2004-02-26 13:09:00) [20]то что у него sql синтаксис немногоизвращенный и отличный от простого