Удаление повторяющихся данных после объединения таблиц

Я давно зациклился на этом запросе и не знаю, что делать дальше. Проблема заключается в объединении нескольких таблиц: я заметил, что числовые данные не соответствуют ожидаемым числовым данным. Это связано с тем, что для каждой записи в таблице с меньшим количеством записей объединение берет все соответствующие записи из более крупной таблицы.

Например, предположим, что у вас есть следующие таблицы. Таблица с меньшим количеством записей, «Доступные фрукты», имеет по одной записи для каждого из A, B, C, D и E. Таблица с большим количеством записей, Sales Today, имеет несколько записей для каждой из A, B, C, D и E.

введите здесь описание изображения

Затем предположим, что вы используете JOIN, чтобы объединить две приведенные выше таблицы.

SELECT A.*, B.*
FROM [Available Fruits] A
JOIN [Sales Today] B
ON A.[Fruit ID]=B.[Fruit ID]

Результатом является таблица ниже. Обратите внимание, что строки из таблицы «Доступные фрукты» дублируются для каждого случая, когда соответствующий идентификатор появляется в таблице «Продажи сегодня». то есть, если вы поместите поля Inventory и Fruit в новую таблицу, эта объединенная таблица приведет к тому, что инвентарь яблок будет отображаться как 375 вместо ожидаемых 75, как показано на следующем изображении.

введите здесь описание изображения

К сожалению, у меня все еще недостаточно очков для публикации изображений.

РЕДАКТИРОВАТЬ: Итак, что я хотел бы сделать в SQL, так это иметь возможность каким-то образом свернуть таблицу «Продажи сегодня» до уровня детализации «Доступные фрукты», чтобы она не дублировалась, ИЛИ каким-то образом вычислить распределение проданных запасов на A, B, C, D, E, чтобы я мог объединить две таблицы без дублирования того, что я объяснил с полем Inventory.

Я очень ценю вашу помощь, ребята.


person rod_lopez    schedule 23.09.2015    source источник
comment
Вы пробовали SELECT DISTINCT?   -  person Alberto León    schedule 23.09.2015
comment
Вот как должно работать соединение ... Вы забываете задать свой вопрос. I noticed that the numeric data does not match the numeric data that I expect как вы думаете, мы можем читать ваши мысли, чтобы узнать, чего вы ожидаете?   -  person Giorgi Nakeuri    schedule 23.09.2015


Ответы (1)


Вы на самом деле не опубликовали то, как вы хотите, чтобы это выглядело. Попробуйте что-то вроде этого (сейчас я не могу попробовать, и я никогда раньше не делал группировку по для объединенных таблиц)

SELECT A.[Fruit ID], A.Fruit, sum(B.[Fruits Sold])
from [Available Fruits] A
left outer join [Sales Today] B on A.[Fruit ID] = B.[Fruit ID]
group by A.[Fruit ID], A.[Fruit]
person Rohit Gupta    schedule 23.09.2015