Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
2-1139375921
SIRUS
2006-02-08 08:18
2006.02.26
абота с с системным регистром


15-1139300111
unknown
2006-02-07 11:15
2006.02.26
Платная электронная почта?


1-1138254587
СержК
2006-01-26 08:49
2006.02.26
Как ограничить по времени "замирание" программы


15-1139233884
PARUS
2006-02-06 16:51
2006.02.26
Нету спама!(Дуратский вопрос)


3-1135705436
jiny
2005-12-27 20:43
2006.02.26
Линки в поле на другую запись