Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];

Вниз

Inner Join в Interbase   Найти похожие ветки 

 
Vemer   (2003-10-19 19:34) [0]

Здравствуйте.
Есть ли в Ibase SQL-команда, подобная Access:овскому Inner Join.
Хочется из одной базы в другую обновление количества товаров
одной SQL командой перекинуть, а не перебором строк.
Следующий запрос почему-то поля, которые не подлежат обновлению в Null скидывает (X + Null неравно X?):

Update baza
Set baza.kolvo = baza.kolvo + (Select Kolvo From Privoz
Where Baza.pin = Privoz.PIN);


 
Nikolay M.   (2003-10-19 20:14) [1]


> X + Null неравно X

Угу. X + Null = Null.
Добавь в подзапросе ...AND Privoz.Kolvo IS NOT NULL.

Да, и давай все-таки нормальные названия полям/таблицам: quantity, input, baze и тд, а то аж глаза такое режет... :(


 
Sergey_Masloff   (2003-10-19 22:18) [2]

Есть в IB inner join. Только нафига он тут?


 
Vemer   (2003-10-20 10:57) [3]

To Nikolay
Спасибо за совет, буду пробовать.
Насчет названии - на Russkom я даю имена столбцам, а на английском - переменным, меньше путаницы. Притом Kolvo короче и понятнее для склада.

To Sergey_Masloff
А вариант/пример слабо кинуть разумеется.


 
Danilka   (2003-10-20 11:04) [4]

[3] Vemer © (20.10.03 10:57)
>А вариант/пример слабо кинуть разумеется.
Кто-же так требует пример? Надо не брать на слабо, а именно требовать, стучать кулаками, кричать на него что он обязан дать тебе код! Вот тогда, он извиниться за свое нехорошее поведение и приведет тебе примеры полностью готовой процедуры и программы.


 
Zhouck   (2003-10-20 12:22) [5]

>>Есть в IB inner join. Только нафига он тут?
Да потому что в SQL он есть.
В Ibase есть почти все команды SQL кроме всяких
minus,inrersect etc (множественные)


 
Vemer   (2003-10-20 13:29) [6]

To Danilka
Если человек что-то утверждает, обычно это чем-то подкрепляется, в нашем случае это 1 SQL-строка для конкретного, приведенного в моем вопросе примера. А просто сказать "Типа есть/Типа нет" может всякий (не хочу никого обижать).

To all.
Вариант Николая не сработал. Напишите мне пожалуйста SQL-строчку для прибавления в Baza.Kolvo значений из Privoz.Kolvo когда Baza.ID = Privoz.ID, но чтобы другие строки Baza не затрагивались.


 
dmtr   (2003-10-20 15:52) [7]

Скажи, а зачем тебе таблица Privoz7


 
Vemer   (2003-10-20 16:10) [8]

To Dmtr
Найди на клаве кнопку Shift.
Каждый месяц на склад поступает контейнер с одинаковым набором деталей, ассортимент около 2000. Состав контейнера забит в Privoz. При поступлении надо к Baza.kolvo прибавить Privoz.kolvo, но только для деталей которые в контейнере, а не набивать вручную.


 
dmtr   (2003-10-20 16:22) [9]

Т.е. в Privoz забивает кто-то другой ?


 
Nikolay M.   (2003-10-20 16:24) [10]

Сори, не сразу понял, что требуется от запроса. А так?
UPDATE baza
SET
baza.kolvo = baza.kolvo + (SELECT Kolvo FROM Privoz WHERE Baza.pin = Privoz.PIN)
WHERE Baza.pin IN (SELECT PIN FROM Privoz)


 
Vemer   (2003-10-20 16:58) [11]

To Nikolai
Спасибо, сейчас попробуем.
Напишите пожалуйста, как вывести общие поля 2-х таблиц, а то вот эта конструкция не работает:
Select Pin, Name from Baza inner join Privoz
where Baza.pin = Privoz.pin;


To Dmtr
Shift нашел!
Контейнер создается из базы простым Select по выбору в другую таблицу. У меня проблемы с его запихиванием обратно :).

To All


 
Zacho   (2003-10-21 08:17) [12]

2 Verner: почитай наконец Language Reference !
Select Pin, Name from Baza inner join Privoz
ON Baza.pin = Privoz.pin;

Кстати, указывать inner - не обязательно, просто join всегда будет внутренним, а left или right join всегда будет внешним (outer). Т.е. inner join == join, left outer join == left join


 
Vemer   (2003-10-21 12:25) [13]

To all.
Всем привет, всем спасибо, весь этот SQL заработал.
Щас буду добавлять очередной тупой вопрос про Locate.
(образование у меня сельскохозяйственное, вот и спотыкаюсь на простых вещах очевидных для других :))

To Zacho
Where iz Language Reference ? (inet, Delphi, Ibase, ...)

-----------------------------------------
ACCESS DENIED, Delphi recomended! (c)Vemer


 
Zacho   (2003-10-21 12:47) [14]


> Vemer © (21.10.03 12:25) [13]
> Where iz Language Reference ?

Language Reference - одна из книг стандартной документации IB. Поставляется в комплекте IB Media Kit, как в виде печатных книг, так и на диске в виде .pdf
Ссылки на бета-версию документации для IB 6.0 и апдейта ее для 6.5 есть на http://www.ibase.ru
P.S. Imho, любому работающему с IB обязательно надо иметь под рукой как минимум Language Reference и Data Definition Guide.


 
Sergey_Masloff   (2003-10-21 21:55) [15]

Zacho © (21.10.03 12:47) [14]
>Language Reference - одна из книг стандартной документации IB. >Поставляется в комплекте IB Media Kit, как в виде печатных книг,
Неправда ваша. Как обладатель лицензионной IB7 ответственно заявляю - печатной документации в MediaKit сейчас НЕТ! Было в 5.1 (5.6 кажется не продавался а распространялся владельцам 5.1) в 6 естественно не было - она бесплатная в 7 просто не предусмотрено.


 
Zacho   (2003-10-22 08:53) [16]


> Sergey_Masloff (21.10.03 21:55) [15]

Оба ... А я и не знал.. У меня был медиакит IB 5.0, насколько знаю и в 4.x были книги.. Так что, в печатном виде сейчас документация к IB вообще не распространяется ?


 
Sergey_Masloff   (2003-10-22 15:40) [17]

Zacho © (22.10.03 08:53) [16]
>Оба ... А я и не знал.. У меня был медиакит IB 5.0, насколько >знаю и в 4.x были книги.. Так что, в печатном виде сейчас >документация к IB вообще не распространяется ?
Отдельно 50 USD и устанешь ждать пока доставят - очень долго. Мы собственно MediaKit ради книжек бумажных брали - все равно FB у нас. И тут такой облом...



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.058 c
1-41248
MaG
2003-10-31 21:42
2003.11.13
Файловая система


3-40825
frogl
2003-10-21 18:42
2003.11.13
MS SQL, записать поле text


1-41709
OlegM
2003-10-28 07:35
2003.11.13
Очень много TEdit на форме как бы их всех очистить


1-41616
race1
2003-10-26 15:41
2003.11.13
private


1-41426
Эдик Дятлов
2003-10-29 13:25
2003.11.13
Изменение размеров и положения во время run-time





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский