2015-09-23 3 views
0

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

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

enter image description here

Тогда предположим, что вы используете РЕГИСТРИРУЙТЕСЬ объединить две таблицы выше.

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

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

enter image description here

К сожалению, я до сих пор не имеют достаточно очков, чтобы добавлять изображения.

EDIT: Так что я хотел бы сделать в SQL, чтобы как-то свернуть таблицу «Sales Today» с уровнем детализации «Доступные фрукты», чтобы он не дублировался или каким-то образом вычислил распределение из инвентаря, проданного за A, B, C, D, E, поэтому я могу присоединиться к двум таблицам без дублирования, что я объяснил в поле «Ресурсы».

Я очень ценю вашу помощь.

+0

Вы пробовали SELECT DISTINCT? –

+0

Как должно работать соединение ... Вы забыли задать свой вопрос. «Я заметил, что числовые данные не соответствуют числовым данным, которые я ожидаю», думаете ли вы, что мы можем читать ваши мысли, чтобы узнать, чего вы ожидаете? –

ответ

0

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

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] 
Смежные вопросы