Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

И снова они. SQL запросы. [D7, MS Access ]


Страницы:   1 2

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 синтаксис немногоизвращенный и отличный от простого


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо