Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2016, 11:43   #1
Vins_98
Пользователь
 
Регистрация: 01.03.2016
Сообщений: 11
По умолчанию Извлечь данные из запроса

Здравствуйте, возникла проблема с запросами и данными, может кто-то знает или сталкивался с этим и может помочь? Буду очень благодарен.
Проблема:
есть два запроса на создание двух таблиц. Надо извлечь из каждой таблицы по два столбца (выделенные).
И, используя их, создать запрос, чтобы в итоге получилось таблица, где значения одинаковых компонентов суммируются.
Или может такое можно просто реализовать как-то непосредственно в дельфи и создать двумерный массив с этим?
Изображения
Тип файла: jpg Безымянный.jpg (42.6 Кб, 123 просмотров)
Vins_98 вне форума Ответить с цитированием
Старый 21.03.2016, 11:55   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

попробуйте такой запрос:

Код:
select aa.nameComp, sum(aa.r_vibros)
from( select nameComp, r_vibros from Table1
  union all
  select nameComp, r_vibros from Table2) aa
group by aa.nameComp
p.s. несовпадающие значения тоже попадают. А совпадающие - суммируются.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.03.2016, 11:57   #3
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

если я вас правильно понял нужен вего лишь 1 запрос.
можно посмотреть как ваши таблицы в БД выглядят??
Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Старый 21.03.2016, 12:05   #4
Vins_98
Пользователь
 
Регистрация: 01.03.2016
Сообщений: 11
По умолчанию

Вот эти таблицы в бд по запросу, из них и надо извлечь данные и сделать еще таблицу
Изображения
Тип файла: jpg 12.jpg (41.0 Кб, 116 просмотров)
Тип файла: jpg 1222.jpg (45.6 Кб, 120 просмотров)
Vins_98 вне форума Ответить с цитированием
Старый 21.03.2016, 12:07   #5
Vins_98
Пользователь
 
Регистрация: 01.03.2016
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
попробуйте такой запрос:

Код:
select aa.nameComp, sum(aa.r_vibros)
from( select nameComp, r_vibros from Table1
  union all
  select nameComp, r_vibros from Table2) aa
group by aa.nameComp
p.s. несовпадающие значения тоже попадают. А совпадающие - суммируются.
Это я так полагаю если у меня таблицы есть непосредственно в базе, да?
или с запросами такое тоже работает только указать тогда надо из каких запросов берем табличные данные?
Vins_98 вне форума Ответить с цитированием
Старый 21.03.2016, 13:10   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

в Dephi запросы работают только с БД, к сожалению,
поэтому в поле from нужно указывать таблицу(-цы).
и можно добавить нужные условия, чтобы отбирались те же данные, что у Вас отображены в гриде, например.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.03.2016, 13:51   #7
Vins_98
Пользователь
 
Регистрация: 01.03.2016
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
в Dephi запросы работают только с БД, к сожалению,
поэтому в поле from нужно указывать таблицу(-цы).
и можно добавить нужные условия, чтобы отбирались те же данные, что у Вас отображены в гриде, например.
т.е. чисто теоретически можно создать подобный запрос?
Код:
select nameComp, sum(r_vibros) as vbr
from( select nameComp, (Res.percent_lkm*vibros.vibros)/100 as r_vibros 
from Component, vibros, Res
  union all
  select nameComp, (ResUnif.percent_lkm*vibros.vibros*ColorsUniflex.perc)/10000 as r_vibros 
  from ColorsUniflex, Component, ResUnif, vibros) aa
group by nameComp
Vins_98 вне форума Ответить с цитированием
Старый 21.03.2016, 13:56   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
т.е. чисто теоретически можно создать подобный запрос?
угу. и теоретически. и даже практически.
и он даже будет пытаться выбрать данные.
Только работать этот запрос будет НЕВЕРНО.

если Вы указываете НЕСКОЛЬКО таблиц в запросе, то эти таблицы должны быть связаны (либо через join либо через where Таблица1.ПолеСвязи = Таблица2.ПолеСвязи and Таблица2.ПолеСвязи2 = Таблица3.ПолеСвязи

иначе получите декартово произведение всех записей из всех указанных таблиц!


Кстати,
я Вам очень рекомендую ознакомиться с книгой М.Грубера (Грабера) "Понимание SQL".
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.03.2016, 14:03   #9
Vins_98
Пользователь
 
Регистрация: 01.03.2016
Сообщений: 11
По умолчанию

О, спасибо! Вы мне чертовски помогли.
Обязательно возьму на заметку данную книгу.

И простите, может сильно напрягаю, но можно задать еще вопрос?
Уже просто скорее по делфовской части
Vins_98 вне форума Ответить с цитированием
Старый 21.03.2016, 14:05   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

всегда пожалуйста! форум для того и нужен!

задавайте, конечно!

Только если вопрос совсем про другое (не имеет отношения к вашим запросам и таблицам), тогда можно будет вынести его в отдельную тему.
Но Вы спрашивайте. Мы потом разберёмся, стоит это выносить или пусть здесь, в теме всё будет...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как извлечь данные из pcap-файла? Gangstarr C/C++ Сетевое программирование 2 22.05.2012 12:37
Извлечь данные kacagevici Microsoft Office Excel 5 23.09.2011 12:58
[Paradox 7 ] Как извлечь нужные данные? rule-z БД в Delphi 1 15.02.2011 22:40
Извлечь данные из access через AdoQuery kmvteam БД в Delphi 11 05.05.2010 09:43
как извлечь данные из паскаля в ворд? Elenka))) Помощь студентам 3 23.01.2010 00:23