Как я могу удалить дубликаты из моих объединенных таблиц? - PullRequest
0 голосов
/ 08 марта 2020

Я хотел бы знать, как я могу избавиться от дубликатов из-за моих объединений между различными, пожалуйста?

Вот мой запрос:

SELECT
T_OF.OFID, T_OF.OFDateDPrev, T_OF.OFDateFPrev,
DATEDIFF (second, T_OF.OFDateDPrev, OFDateFPrev) AS DureePrevSec,
T_OF.OFDateDReelle,
T_OF.OFDateFReelle,
DATEDIFF (second, T_OF.OFDateDReelle, OFDateFReelle) AS DureeRelleSec,
T_OF.OFEtat,
T_OF.OFDateState,
T_Sequence_phase_OF.SeqPhaseNom,
T_OF.OFQtyPrev,
T_OF.OFQtyReal,
T_OF.ArtID,
T_OF.UnitID,
T_OF_Nomenclature.OFNomQty,
T_OF.LineID,
T_OF_User.OFUserID,
T_Sequence_phase_OF.SeqPhaseId,
T_Sequence_phase_OF.SeqId,
T_Sequence_phase_OF.SeqPhaseEtat,
T_Sequence_phase_OF.SeqPhaseDateEtat,
T_Sequence_phase_OF.SeqPhaseDateDebut,
T_Sequence_phase_OF.SeqPhaseDateEnd
INTO T_tracing2
FROM T_OF
INNER JOIN T_OF_Nomenclature
ON T_OF.OFID = T_OF_Nomenclature.OFID

INNER JOIN T_OF_User
ON T_OF_User.OFID = T_OF.OFID
INNER JOIN T_Sequence_phase_OF
On T_Sequence_phase_OF.OFId = T_OF.OFID
ALTER TABLE T_tracing2 ADD OFUserPrevID VARCHAR (200) DEFAULT '1'
ALTER TABLE T_tracing2 ADD LineID VARCHAR (200) DEFAULT '100'
ALTER TABLE T_tracing2 ADD ArtPrevID VARCHAR (200) DEFAULT '245'

Дубликаты находятся в Столбцы SeqPhaseNom, потому что я сделал 3 объединения, внезапно это поле повторяется 3 раза в моей таблице.

Я привожу пример таблиц: T_OF table:

T_OF        
OFID    OFDateDPrev OFDateFPrev
159     2019-12-17 16:30:00.000 2019-12-19 00:00:00.000
160     2019-12-19 16:38:36.743 2019-12-19 17:38:36.743
161     2019-12-19 00:00:00.000 2019-12-19 08:00:00.000
162     2020-01-15 00:00:00.000 2020-01-16 00:00:00.000
163     2020-01-15 12:22:18.090 2020-01-15 13:22:18.090
164     2020-01-15 12:31:20.053 2020-01-15 13:31:20.053
165     2020-01-15 13:45:22.467 2020-01-15 14:45:22.467
166     2020-01-16 08:03:00.000 2020-01-16 08:06:00.000

T_Sequence_Phase_OF table:

T_Sequence_Phase_OF             
OFId    SeqPhaseNom SeqPhaseId  SeqPhaseEtat    SeqPhaseDateDebut
161     Debut       1           170 2019-12-19 16:51:46.523
161     Ecriture    2           140 2019-12-19 16:51:47.323
164     Debut       3           170 2020-01-15 12:31:54.617
164     Boucle Flacon4          170 2020-01-15 12:31:55.587
164     Stockage    5           160 2020-01-15 12:31:56.183
165     Debut       6           170 2020-01-15 13:45:32.307
165 Boucle Flacon   7           170 2020-01-15 13:45:32.823
165 Stockage        8           170 2020-01-15 13:45:33.407
165 Remplissage     9           170 2020-01-15 14:03:58.283
165 Bouchonnage     10          170 2020-01-15 14:04:03.350
165 Destockage      11          170 2020-01-15 14:04:07.383
165 Retour boucle flacon    14  170 2020-01-15 14:04:14.220
165 Boucle Flacon   15          170 2020-01-15 14:04:14.917
165 Stockage        16          170 2020-01-15 14:04:15.603
165 Remplissage     17          170 2020-01-15 14:05:37.443
165 Bouchonnage     18          170 2020-01-15 14:05:41.340

T_OF_user

T_Users 
OFId    OFUserID
161     108
162     109
162     110
163     111
164     112
165     113

Таблица номенклатуры T_:

T_Nomenclature  
OFId    OFNomQty
159     3.0000
162     40.0000
162     4.0000
162     4.0000
163     3.0000
163     3.0000
163     3.0000
164     40.0000
164     4.0000
164     4.0000

Результат этого запроса:

OFID OFDateDPrev OFDateFPrev SeqPhaseNom
164 2020-01-15  2020-01-15  Debut
164 2020-01-15  2020-01-15  Debut
164 2020-01-15  2020-01-15  Debut
164 2020-01-15  2020-01-15  Boucle Flacon
164 2020-01-15  2020-01-15  Boucle Flacon
164 2020-01-15  2020-01-15  Boucle Flacon
164 2020-01-15  2020-01-15  Stockage
164 2020-01-15  2020-01-15  Stockage
164 2020-01-15  2020-01-15  Stockage 
165 2020-01-15  2020-01-16  Debut
165 2020-01-15  2020-01-15  Debut
165 2020-01-15  2020-01-15  Debut
165 2020-01-15  2020-01-15  Boucle Flacon
165 2020-01-15  2020-01-15  Boucle Flacon
165 2020-01-15  2020-01-15  Boucle Flacon
.....

У нас три раза одинаковые SeqPhaseNom, потому что я выполнил три соединения

И в результате я хочу получить следующее:

OFID OFDateDPrev OFDateFPrev SeqPhaseNom
164  2020-01-15     2020-01-15  Debut
164  2020-01-15     2020-01-15  Boucle Flacon
164  2020-01-15     2020-01-15  Stockage
165  2020-01-15     2020-01-15  Debut
165  2020-01-15     2020-01-15  Boucle Flacon
....

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

Любая помощь, пожалуйста?

1 Ответ

0 голосов
/ 08 марта 2020

может быть просто

"Выбрать отличную * из таблицы"

может помочь вам.

Спасибо.

...