Форум: "Начинающим";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];
ВнизВнешнее объединение dbf в SQL запросе Найти похожие ветки
← →
sashuly (2005-09-09 09:19) [0]Здраствуйте.
Я хочу объединить два Dbf-ка с помощью SQL запроса, придумал следующее:
select t.orderid, t.op_code, t.op_light, t.op_name2, a.gsum
from "table.dbf" t left JOIN
(select op_code, orderid, sum(op_light) as gsum from "goods.dbf" g order by orderid, op_code) as a
ON A.op_code = t.op_code
пробовал такую конструкцию на MS SQL прокатывало, с dbf+Delphi не хочет. Ругается на второй SELECT.
Можно ли в моей ситуации делать подобные запросы и как быть?
← →
Anatoly Podgoretsky © (2005-09-09 09:23) [1]Да с dbf+Delphi нормально все.
← →
sashuly (2005-09-09 09:30) [2]>Anatoly Podgoretsky
Стало быть дело в моих руках, тогда в чем ошибка?
← →
Anatoly Podgoretsky © (2005-09-09 09:34) [3]Ошибка не в руках, а в голове. Хочешь я переведу твой вопрос?
ПОмогите не работает.
← →
Ильш © (2005-09-09 09:41) [4]dbf+Delphi это конечно круто
тока я понимаю ты BDE пользуешь? или чего? или как? и где? А?
в MS SQL работает, но в дургих то может не работать - не предполагал?
кароче вопрос задай нормально
← →
ЮЮ © (2005-09-09 09:55) [5]>пробовал такую конструкцию на MS SQL прокатывало
Даже на MS SQL это, ИМХО, должно было выглядкит иначе:
select
t.orderid, t.op_code, t.op_light, t.op_name2, a.gsum
from
table t
left JOIN (
select op_code, orderid, sum(op_light) as gsum
from "goods.dbf" g group by orderid, op_code
) as a ON
(A.op_code = t.op_code) and (A.orderid = t.orderid)
Если используешь BDE, подзапрос а сохрани в иекстовом файле "а.sql" и положи в Базу. Получишь локальную вьюху.
Теперь
select
t.orderid, t.op_code, t.op_light, t.op_name2, a.gsum
from
table t
left JOIN "a.sql" as a ON
(A.op_code = t.op_code) and (A.orderid = t.orderid)
← →
sashuly (2005-09-09 10:56) [6]>Anatoly Podgoretsky
Именно так я и спрашиваю:)
>Ильш
На MS SQL я проверял правильность синтаксиса, то что там работает я пришёл выводу, что с точки зрения SQL написано все правильно. Поэто му я и задаюсь вопросом если обращатся к dbf в чем отличие реализации.
>ЮЮ
по поводу:
(A.op_code = t.op_code) and (A.orderid = t.orderid)
именно так и должно быть, я пока частный случай выяснял:)
← →
Anatoly Podgoretsky © (2005-09-09 11:06) [7]Ну да и мы должны сами догадаться, что за базу ты используешь, какой движок и драйвер. А также самостоятельно составить свой вариант ругани.
Хорошо это возможно, только сколько в баксах?
← →
Desdechado © (2005-09-09 11:07) [8]Синтаксис SQL у каждого сервера разный. Идет на MSSQL - не факт, что пойдет еще где-нибудь. Тем паче на DBF, к которому ты подключаешься неуказанными компонентами. Поэтому, держа в секрете способ обращения к БД, читай справку по этому способу сам.
← →
Nikolay M. © (2005-09-09 13:32) [9]
> Anatoly Podgoretsky © (09.09.05 09:34) [3]
> Ильш © (09.09.05 09:41) [4]
Не пойму, зачем газы в луж... т.е. такое постить? Трафика не жалко?
> sashuly (09.09.05 09:19)
> select t.orderid, t.op_code, t.op_light, t.op_name2, a.gsum
>
> from "table.dbf" t left JOIN
> (select op_code, orderid, sum(op_light) as gsum from "goods.dbf"
> g order by orderid, op_code) as a
> ON A.op_code = t.op_code
ДБФ позволяет конструкции типаSELECT
a,b,(SELECT MAX(c) FROM t2 WHERE t2.a=t1.a)
FROM
t1
?
← →
Anatoly Podgoretsky © (2005-09-09 16:56) [10]Nikolay M. © (09.09.05 13:32) [9]
Не dbf, а соответсвующий движок, сам dbf ничего не позволяет, но даже это слово почти ничего не говорит это просто расширения подмножества совместимых и не совместимых форматов. И нет особого смысла вести речь в контексте dbf
← →
Anatoly Podgoretsky © (2005-09-09 16:59) [11]Nikolay M. © (09.09.05 13:32) [9]
Не пойму, зачем газы в луж... т.е. такое постить? Трафика не жалко?
С чего бы ты это озаботился моим трафиком, я конечно могу ответить, но для этого надо перейти в чат.
А как только автор приведет подробности, то возможно и получит совет, а возможно и нет. Смотря что у него и как будет рассказывать.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.041 c