Объедините две таблицы в 4 одинаковых столбца и сохраните уникальные столбцы.

avatar
chriswang123456
1 июля 2021 в 15:44
28
2
0

У меня есть две таблицы, в одной из которых есть столбцы

"ДАТА","ПРОДУКТ","ДОППРОДУКТ","ФАКТИЧЕСКИЕ","СЛУЧАЙНЫЙ1"

Вторая таблица имеет

"ДАТА,"ПРОДУКТ","ДОППРОДУКТ","ФАКТИЧЕСКИЕ","СЛУЧАЙНЫЙ2"

Дата, продукт, подпродукт, фактические значения — одинаковые значения для обеих таблиц, а random1 и random 2 — уникальные значения.

Я хочу, чтобы финальный стол был

"ДАТА","ПРОДУКТ","ДОППРОДУКТ","ФАКТИЧЕСКИЕ","СЛУЧАЙНЫЙ1","СЛУЧАЙНЫЙ2"

Источник
Gordon Linoff
1 июля 2021 в 15:51
0

Предоставьте образцы данных, желаемые результаты и соответствующий тег базы данных.

chriswang123456
1 июля 2021 в 15:57
0

Эй, я полный новичок в SQL, я обновил выше

Ответы (2)

avatar
Kamran Qadir
1 июля 2021 в 16:27
0

Вы можете объединять таблицы, используя предложение where, как показано ниже

select t1.DATE, t1.PRODUCT, t1.SUBPRODUCT, t1.ACTUALS, t1.RANDOM1, t2.RANDOM2
from table1 t1, table2 t2
where t1.DATE = t2.DATE and t1.PRODUCT = t2.PRODUCT and t1.SUBPRODUCT = t2.SUBPRODUCT and t1.ACTUALS = t2.ACTUALS

Он вернет такие данные

enter image description here

avatar
Gordon Linoff
1 июля 2021 в 15:52
1

Простой способ в стандартном SQL использует join с предложением using:

select *
from table1 t1 join
     table2 t2
     using (col1, col2, col3, col4) ;

SQL Server не поддерживает предложение using, поэтому, увы, вам нужно перечислить столбцы. Типичный метод:

select t1.*, t2.random2
from table1 t1 join
     table2 t2
     on t1.date = t2.date and
        t1.product = t2.product and
        t1.subproduct = t2.subproduct and
        t1.actuals = t2.actuals;

Примечание. Это возвращает только те строки, которые совпадают в обеих таблицах. Если вам нужны все строки, вы можете использовать full join и настроить select.

chriswang123456
1 июля 2021 в 16:12
0

Когда я попробовал это, он говорит, что есть «синтаксическая ошибка рядом с использованием»

Gordon Linoff
1 июля 2021 в 17:24
0

@chriswang123 . . . Это стандартный SQL, поддерживаемый многими базами данных. В вашем вопросе нет других указаний на базу данных, которую вы используете.

chriswang123456
1 июля 2021 в 18:13
0

О, хорошо, теперь я понимаю. Я использую студию управления Microsoft SQL Server.