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

Вниз

Взять значение поля с другой таблицы   Найти похожие ветки 

 
Bolat   (2004-09-16 13:53) [0]

Дорогие мастера!!!
есть две таблицы (dbase III) один из них справочник с несколькими сотен видов материалов. Поля: код, наименование материала, стоимость.
В другой таблице тоже несколько полей в том числе и код материала и вычисляемые поля.
Так вот для вычисление одного из полей нужно следующие данные:
потребность * на стоимость материала, код которого введен в этой таблице.


 
Sergey13 ©   (2004-09-16 14:18) [1]

Либо насторить лукап поле "стоимость", либо (лучше) написать запрос с этим полем
типа
select m.*,s.stoim
from main_table m,sprav_table s
where m.id_mat=s.id


 
Bolat   (2004-09-16 14:59) [2]

ya kajetsya nemnogo ne ponyal etogo zaprosa chto est chto tut?
:))


 
Sergey13 ©   (2004-09-16 15:05) [3]

Там сначала 2 строки по русски от себя (от меня в смысле), а потом 3 стоки на SQL.
8-)


 
Bolat   (2004-09-16 15:23) [4]

:))
net serezno pomogite nachinayushemu, protyanite ruku tak skazat"


 
Sergey13 ©   (2004-09-16 15:33) [5]

Так и ты протяни чего нибудь. 8-)
Например компоненты доступа.
Или расшифруй
>Так вот для вычисление одного из полей


 
RavenD   (2004-09-16 16:18) [6]

как было сказано есть 2 варианта решения данной проблемы
I) через TQuery при помоще запроса, очень гибко, удобно но.. к сожалению с файл-серверной системой медленно (во всяком случае медленее чем 2 способ в 2 раза)
a) select * from Рабочая, Справочник
  where Справочник.Code = Рабочая.Code (но есть ньюансы объединения таблиц, читай help по SQL)
b) в TQuery создаешь поле Calculate и читай ниже.
II) через TTable (значительно быстрее, но менее гибко любые изменения в ТЗ потребую коренной переделки связки).
Для начинающего по шагам,
 a) вешаешь 2 TTable (Справочник, Рабочая) и настраиваешь на свои таблицы
 b) в Рабочей создаешь новое поле (контекстное меню -> New), тип поля Lookup, там 4 параметра (имя таблицы которую прикручиваем, 2 поля по которым вяжем, и поле которое вытаскиваем) наверху слева укажешь имя и тип, в результате ты имеешь в своей Рабочей табле значения из Справочника
 c) если тебе ещё требуются какието расчеты с этими полями, создаешь в Рабочей ещё нужное количество полей, только теперь ставишь Calculate, имя и тип
 d) на TTable выбираешь событие OnCalculate (не помню транскрипцию), и там уже пишишь свою арифметику типа:
  fieldCalc.AsFloat := fieldLookup.AsFloat * 10;


 
Bolat   (2004-09-16 16:35) [7]

Ravend i Sergey bolshoe vam spasibo!!


 
Sergey13 ©   (2004-09-16 16:52) [8]

2[6] RavenD  
Тебе бы хелпы писать.
Вот только утверждение

>но.. к сожалению с файл-серверной системой медленно (во всяком случае медленее чем 2 способ в 2 раза)

так скажем спорно, как минимум


 
RavenD   (2004-09-22 09:15) [9]

>Sergey13
ну в 2 ни 2 но в в 1.5 это точно, становится заметно особенно на больших объемах, особенно при связках нескольких табл где в каждой больше 150 000 записей, а это уже кое что


 
Sergey13 ©   (2004-09-22 09:53) [10]

2[9] RavenD   (22.09.04 09:15)
1.А зачем нужны запросы возвращающие 150000 записей?
2.Если через лукап TTable связывать 2 таблицы по 150000 записей, то конца связывания можно и не дождаться. Тем более с ф/с системой по сети.



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

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

Наверх





Память: 0.47 MB
Время: 0.132 c
1-1097017647
ДЫМ
2004-10-06 03:07
2004.10.17
Как обработать исключения при чтении/записи на дискету?


14-1095772468
Empleado
2004-09-21 17:14
2004.10.17
М.С. Горбачев


14-1096315452
Луарвик
2004-09-28 00:04
2004.10.17
ЧТО ТАКОЕ САБЖ???


8-1090673542
Ig
2004-07-24 16:52
2004.10.17
GDI Plus


3-1095851327
Карелин Артем
2004-09-22 15:08
2004.10.17
Использование Midas.dll в Win 2000.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский