Текущий архив: 2006.02.26;
Скачать: CL | DM;
Вниз
Выборка из 2ух таблиц Найти похожие ветки
← →
ViktorZ © (2006-02-04 09:13) [0]Нужно установить соответсвие этих 2ух полей и выбрать во втором то где Шифр =15
Вот что я пишу:
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Text:="Select * From Acheck Where LogicDate = :P1";
Query1.Params[0].AsDate := strtoDate(Trim( Edit1.text));
Query1.Open;
потом вяжу 2 датасоурсе на первый квери и пишу уже во втором квери
Query2.Close;
Query2.SQL.Clear;
Query2.SQL.Text:="Select * From ADCheck Where Sys_Num=:Sys_Num And Sifr=15 ";
Query2.Open;
← →
YurikGL © (2006-02-04 09:50) [1]Ничего не понял....
> потом вяжу 2 датасоурсе на первый квери и пишу уже во втором
> квери
Эта строчка особенно непонятна..
← →
ViktorZ © (2006-02-04 10:10) [2]потом вяжу 2 датасоурсе на первый квери и пишу уже во втором квери <<
Ой вяжу Второй Квери на первый ДатаСоурсе. Короче мне нужно по диапазону Сис Нум в первой таблице увидет диапазон Сиснума2=Сиснум1 где Шифр равен 15.
← →
YurikGL © (2006-02-04 10:12) [3]
> ViktorZ © (04.02.06 10:10) [2]
Лучше сделать так:
Даешь исходную структуру таблиц, какуй таблицу нужно получить в итоге, и пример.
← →
ViktorZ © (2006-02-04 10:20) [4]Мне не нужно получать новую таблицу Нужно правильно сделать выборку(чего я пока не могу). Таблицы дать не могу, я на модеме а они большие(30 мег). Неужели я непонятно написал в [2] что мне нужно?
← →
YurikGL © (2006-02-04 11:48) [5]
> Таблицы дать не могу,
Структуру таблиц дать можешь? И структуру того, что хочешь получить...
Структура, в данном случае, - набор полей.
← →
ViktorZ © (2006-02-04 12:28) [6]а. Да это что. Вот структура таблицы Acheck:
поля: sys_num - integer, Logicdate-date,
Выбираем из нее дату из тестового поля(это я сделал)
Получаем в LogicDate - Дата из тестового поля. В Sys_num диапазон чисел.
Таблица2) ADCheck: Sys_num, Sifr -integer.
По диапазону Sys_num полученным из первой таблицы нужно получить диапазон Sifr где шифр = 15 например.
Пример:
1)
LogicDate Sys_Num
24.01.2006 123
24.01.2006 124
24.01.2006 125
24.01.2006 126
24.01.2006 127
24.01.2006 128
2)
Sifr Sys_num
2 123
3 125
2 126
15 127
15 128
В таблице 2 дожно быть два поля Sys_Num и Sifr (127,128 :: 15 15) сооттвественно.
Могу даже таблички кинуть, если не понятно написал.
← →
Anatoly Podgoretsky © (2006-02-04 12:45) [7]Какие такие две таблицы?
Ты разумно задачу в состоянии объяснить?
← →
ViktorZ © (2006-02-04 13:38) [8]а я что выше то делал, я уже и пример привел и расписал все как мог, Как можно ее еще объяснять? Что непонятно?
Какие такие две таблицы?--<<
Все очень просто: 1) Acheck 2) ADCheck? ВЫ не знали что такое таблицы? Или они что то другое значат.
← →
YurikGL © (2006-02-04 14:58) [9]т.е. из таблицы Acheck выбираем Sys_num которому соответсвует некая дата. Потом смотрим в таблице ADCheck какие Sifr соответсвуют выбранному Sys_num
Все правильно?
← →
ViktorZ © (2006-02-04 15:41) [10]Ну да только не дата а диапазон дат. Из него получаем диапазон Сиснум. По диапазону Sys_Num, который мы выяснили разбираем записи, в которых в поле Sifr стоит значение 15.
← →
Desdechado © (2006-02-04 16:50) [11]SELECT A.*, AD.*
FROM Acheck A, Adcheck AD
WHERE A.LogicDate BETWEEN :P1 AND :P2
AND A.Sys_Num = AD.Sys_Num
AND AD.Sifr = 15
← →
ViktorZ © (2006-02-04 16:58) [12]Блин нифина как круто, я тут запросов размусолил. Спасибо за попробую. Посоветуйте Скуль книгу, где можно узнать побольше про запросы.И это а зачем вообще псевдонимы придумали, что без них разве нельзя?
← →
ViktorZ © (2006-02-04 18:38) [13]А можно подключить сюда третью таблицу? это я к тому что как быть мне с результатом запроса, если это еще не конец и мне его нужно сравнить с др таблицей. То есть лично сам думаю (пока не знаю как) слить все в промежуточную таблицу, а потом оттуда снова запросом. ИЛИ можно как то сразу здесь?
← →
Desdechado © (2006-02-04 19:00) [14]1. можно соединять сразу несколько таблиц, причем по-разному (внешнее, внутреннее, полное соединение)
2. можнои без псевдонимов, только в случае соединения таблиц это не очень удобно, ибо надо тогда писатьполные имена таблиц, а это удлинняет запрос и делает его менее читабельным
3. книжку можешь взять любую по SQL, азы есть во всех, но лучше взять ту, в которой расписаны тонкости твоей СУБД (а они есть всегда, эти отклонения от стандарта)
← →
ViktorZ © (2006-02-04 21:58) [15]а как тогда работать дальше. Ну скажем мне теперь плученные результат нужно сравнить еще с одним полем другой таблицы.
← →
Desdechado © (2006-02-04 22:49) [16]> а как тогда работать дальше
книжку взять по SQL
← →
ViktorZ © (2006-02-04 22:56) [17]блин я думал услышать этот ответ намного раньше:-))) мож ссылку даш или автора посоветуешь.
← →
YurikGL © (2006-02-05 12:13) [18]Мартин Грубер. Понимание SQL
http://podgoretsky.com/ddp.html
← →
Desdechado © (2006-02-05 15:36) [19]ViktorZ © (04.02.06 22:56) [17]
см. [14].3
Страницы: 1 вся ветка
Текущий архив: 2006.02.26;
Скачать: CL | DM;
Память: 0.51 MB
Время: 0.033 c