![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Можно ли получить соединение наборов данных двух TQuery? [D5, IB5.x, Paradox]
wHammer © (2002-12-26 14:02:00)Именно, не реальных таблиц, и не просмотров (VIEW), а то что отобрал Select в TQuery.
С наилучшими...
Александр.
passm (2002-12-26 17:43:00) [21]passm © (26.12.02 17:30)> Поменьше спеси, plz. Дерзните, посмотрим на ваше рукоделие...
Lady D (2002-12-26 17:42:00) [22]2passm © (26.12.02 17:30)>
Это, видимо, в соответствии с "потребностями автора вопроса" Вы ему советовали TRxQuery для работы с MySQL?
http://delphi.mastak.ru/cgi-bin/forum.pl?n=1&look=1&id=1040888468&from=41
Lady D (2002-12-26 17:35:00) [23]2passm © (26.12.02 17:30)>
Послушайте, товарищ учитель, Ваш бред вполне можно переписать с использованием JOIN
passm (2002-12-26 17:30:00) [24]Lady D © (26.12.02 17:16)> Не к истине, а к потребностям автора вопроса :)
Lady D (2002-12-26 17:16:00) [25]Извиняюсь, что мешаю вам "соединяться", но может это будет ближе к истине?
SELECT CAST(idfilial as..),
CAST(dateotgr as..) d,
CAST(nameizd as..),
CAST( SUM(Kol) as..) OSTATOK
FROMplanprodajfilial
WHERE(idfilial = :ffilial1) AND(dateotgr = :fdate1)
GROUP BYidfilial, dateotgr, nameizd
UNION ALL
SELECT CAST(idfilial as..),
CAST(dater as..) d,
CAST(nameizd as..),
CAST(ostatok ..)
FROMostatkifilialf
WHERE(idfilial = :ffilial2) AND(dater = :fdate2)
passm (2002-12-26 16:38:00) [26]wHammer © (26.12.02 16:13)> Попробуй:
select IDFilial, DateOtgr, NameIzd, sum(Kol) as Summa,
(select Ostatok
from OstatkiFilialF as q2
where (IDFilial = :fFilial) and (DateR = :fDate)
and q1.IDFilial = q2.IDFilial
and q1.DateOtgr = q2.DateOtgr
and q1.NameIzd = q2.NameIzd) as Ostatok
from PlanProdajFilial as q1
where (IDFilial = :fFilial) and (DateOtgr = :fDate)
group by IDFilial, DateOtgr, NameIzd
wHammer (2002-12-26 16:13:00) [27]Да, неучел, сорри...
Будет что-то вроде -
select IDFilial, DateR, NameIzd, Ostatok from OstatkiFilialF
where (IDFilial = :fFilial) and (DateR = :fDate)
passm (2002-12-26 16:10:00) [28]wHammer © (26.12.02 16:01)> Во втором запросе конкретизируй заголовок (замени * на перечень столбцов). Тогда будет понятней.
Lady D © (26.12.02 16:04)> Глупо.
Reindeer Moss Eater (2002-12-26 16:04:00) [29]Ветку надо закрыть, ибо условие вопроса изменилось кардинальным образом
Lady D (2002-12-26 16:04:00) [30]2 passm © (26.12.02 15:56)>
> Таким образом Johnmen опирается на слово
> соединение.
Соединяйтесь...
In nomine Patris, et Filli, et spiritus Sancti... Amen
wHammer (2002-12-26 16:01:00) [31]Ребят не ругайтесь пожалуйста из-за меня.
Не буду показывать все запросы (5), покажу лишь 2 Query, которые нужно соеденить.
TQuery1.SQL
select IDFilial, DateOtgr, NameIzd, sum(Kol) as KolSum
from PlanProdajFilial
where (IDFilial = :fFilial) and (DateOtgr = :fDate)
group by IDFilial, DateOtgr, NameIzd
TQuery1.SQL
select * from OstatkiFilialF
where (IDFilial = :fFilial) and (DateR = :fDate)
Нужно показать пользователю следующее (выборка(фильтр) данных по IDFilial и по DateXXXXX), шапка:
NameIzd | Ostatok | PlanProdaj |
С наилучшими...
Александр.
passm (2002-12-26 15:56:00) [32]Lady D © (26.12.02 15:48)> Вобщем, ты права, по образованию я учитель. Но. Сначала был вопрос: Можно ли получить соединение наборов данных двух TQuery?. В котором не встречается слово JOIN. Таким образом Johnmen опирается на слово
соединение.
MsGuns (2002-12-26 15:55:00) [33]>wHammer ©
Для выполнения многошаговых запросов в Paradox нельзя, к сожалению, использовать транзакции, а как следствие, теряют свой смысл хранимые процедуры. Я в таких случаях использую суррогатные скрипты, т.е. есть модуль, который делает многоступенчатые расчеты, берет очередной запрос из некоего текстового файла, подготовленного заранее в определенном формате (кроме SQL там есть "мои" операторы, например, для подстановки параметров). Модуль тупо выполняет все запросы из этого скрипта-файла и возвращает (или не возвращает, если была коррекция БД) НД, который я и "засовываю" в грид.
Трудно этот метод назвать оптимальным, но для парадокса ничего лучшего я не нашел.
Reindeer Moss Eater (2002-12-26 15:53:00) [34]У меня их не бывает по определению
Lady D (2002-12-26 15:51:00) [35]
> Reindeer Moss Eater (26.12.02 15:49)
> Ну, вот, еще один "учитель".
> У Вас дни трудные, леди?
Это у Вас трудные. Ягель видимо снегом засыпало :-)
Lady D (2002-12-26 15:50:00) [36]
> Reindeer Moss Eater (26.12.02 15:45)
> Вам Вам, Lady D
Вы вообще веточку то эту читали? Укажите мне где я советовала JOIN.
Reindeer Moss Eater (2002-12-26 15:49:00) [37]Ну, вот, еще один "учитель".
У Вас дни трудные, леди?
Lady D (2002-12-26 15:48:00) [38]2 passm © (26.12.02 15:45)>
> Lady D © (26.12.02 15:40)> Когда говорят соединение подразумевается
> JOIN; когда говорят объединение подразумевается UNION.
Ну, вот, еще один "учитель".
Цитирую себя еще раз: Lady D © (26.12.02 14:33)
Reindeer Moss Eater (2002-12-26 15:45:00) [39]Вам Вам, Lady D
passm (2002-12-26 15:45:00) [40]wHammer © (26.12.02 15:40)> Можно попробовать привести данные в отдельных запросах к одинаковой структуре.
Lady D © (26.12.02 15:40)> Когда говорят соединение подразумевается JOIN; когда говорят объединение подразумевается UNION.