Как выбрать данные из 3 таблиц в SQL с GROUP BY? - PullRequest
0 голосов
/ 15 октября 2018

Я запутался, чтобы выбрать точные данные из трех таблиц.Данные, которые нужно выбрать, составляют более 200 тыс. Записей.Я получил

Таблица 1: Заголовок

  No.    Code
  -------------
  1      AAA
  2      BBB
  3      CCC
  4      DDD

Таблица 2: Подробно :

  No.    I-Code
 ---------------
  1      123
  1      122
  1      111
  2      222
  2      212
  3      333
  3      341

Таблица 3: Инвентарь

 I-code  Code
 ------------
  123     AAA
  122     ACC
  111     ACE
  222     BAA
  212     BVC
  333     DVC
  341     CVD

Я хочу выбрать I-код , Код из Таблица 3 вместе с Код в таблица 1 , группировка по Нет в таблица 2 .Это возможно?Я перепробовал много методов, и это все больше сбивает меня с толку.

Один из запросов, который я пробовал, это

SELECT 
    inventory.I-code, inventory.Code,header.Code
FROM 
    inventory
INNER JOIN
    Detail ON inventory.I-code = Detail.I-code
INNER JOIN
    header ON header.No =Detail.No

. Он дает мне данные, но номер дублируется.Я также пытался сгруппировать Нет.

Ожидаемый результат.

No[from tbl 1]   I-code[from tbl 3]   Code[from tbl 3]{GROUPBY} Code[frm tbl 1]
   1                     123                   AAA                AAA
   1                     122                   ACC                AAA  
   1                     111                   ACE                AAA
   2                     222                   BAA                BBB
   3                     341                   CVD                CCC

Пожалуйста, помогите.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Вы можете использовать другой запрос, чтобы получить тот же результат

  with t as (select   H.no, H.code,d.[I-code] from 
  Header H inner join Detail D on  H.no= D.no) 

  select  t.NO as [No from tbl 1]  ,i.[I-code] as  [I-code from tbl 3],i.code as  [Code 
 from tbl 3], t.code as [Code frm tbl 1] from Inventory I inner join t on i.code=t.code
0 голосов
/ 15 октября 2018

Попробуйте ниже с помощью подзапроса и присоединиться

select x.*,y.code from 
(select a.no,a.code,b.icode from 
  table1 a inner join table2 b on a.no=b.no)x inner join table3 y on x.icode=y.code
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...