Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
4-1124183268
volser
2005-08-16 13:07
2005.10.16
Изменение рабочего стола


1-1127819167
Jioniro
2005-09-27 15:06
2005.10.16
Dll как хранилище иконок


1-1127320220
JJ
2005-09-21 20:30
2005.10.16
Размер программы в памяти


9-1117929264
ГеорГ
2005-06-05 03:54
2005.10.16
Как пользоваться SetGammaRamp


1-1127510896
Студент:(
2005-09-24 01:28
2005.10.16
Вычисление С в степени N с минимальным количеством умножений





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