![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
SQL
Loco © (2002-07-20 15:42:00)Hello, всем!!!
Господа, подскажите, что не так в этом кусочке кода:
SQL.Add("SELECT *");
SQL.Add("FROM "person.db", "slug_inf.db"");
SQL.Add("WHERE person.code=slug.inf.code" and "slug_inf.CreditSum >= "+IntToStr(strSum)+"" and "slug_inf.CreditSum =< "+IntToStr(strSumM)+"");
SQL.Add("ORDER BY Code");
Спасибо заранее, всем, кто откликнется :))
DmitryK (2002-07-22 12:21:00) [1]Количество полей здесь, никакой роли не играет. Единственное исключение, когда возможны комбинации значений такие, что в оставленном наборе полей будут все NULL. Но насколько я понимаю, для данного случая это безразлично.
Что же касается запроса, то так составлять запросы имеет смысл только при условии соединения таблиц по принципу один-к-одному. Но в таком случае говорить что какая-то таблица главная, а какая-то подчиненная тоже не корректно (они равноправны).
Вообщем-то запрос должен выполняться, единственная причина по которой я вижу, что запрос не будет возращать никаких данных, так это strSum>strSumM
(и в синтаксисе есть мелкие ошибки, но про них вроде уже говорили)
Desdechado (2002-07-22 10:45:00) [2]2 kaif © (21.07.02 16:28)
> Декартова произведения не будет
будет, но при наличии условия оно будет всего лишь меньше размером
kaif (2002-07-21 16:28:00) [3]2 Desdechado © (20.07.02 18:29)
Декартова произведения не будет. У человека же стоит условие отбора в Where и вроде корректное. Я просто не понимаю, чего он хочет. Точнее, как он приходит к выводу, что что-то не так?
у него, что:
1. Выскакивает ошибка
2. Пустой набор
3. Не тот набор, какой хотелось бы...
???
Он же никак не объясняет, в чем, собственно проблема приведенного кода.
Loco (2002-07-21 15:15:00) [4]Привет всем!
Desdechado (2002-07-20 18:29:00) [5]поставь в SELECT имена полей явно, а то она тебе вынет декартово произведение таблиц
Loco (2002-07-20 17:16:00) [6]Видишь ли тут одна интересная проблема:
выборка делается в подчинённой таблице (slug_inf) связанной с главной (person) по полю Code. Поля, по которому делается выборка в главной таблице нет. Я хочу добиться того чтобы в главной таблице отбирались поля, соответствующие отобраным полям подчинённой (не запутал??? просто, сам чуть не запутался :))).
Ты как думаешь, возможно эту задачу решить с помощью одного Query не переделывая структуру данных????
Ладно, я бы поболтал, но надо бежать, если интересно, приходи завтра к обеду - обсудим :))
kaif (2002-07-20 17:08:00) [7]А в чем это выражается?
И чего ты хочешь добиться, собственно?
Loco (2002-07-20 16:34:00) [8]Ну я немного не это имел в виду, здесь всё правильно(за исключением точки), проблема с условиями (они все вместе никак не хотят выполняться)
kaif (2002-07-20 16:15:00) [9]"WHERE person.code=slug.inf.code"
наверно slug_inf.code.
и потом, зачем кавычки?
можно просто
"FROM person, slug_inf"