je suis nouveau dans SQL j'utilise MS SQL Server, j'ai cette sélection et rejointComment lignes distinctes sans utiliser Distinct
SELECT t1.number
,t2.site1
,t2.Events_W
,t3.site1
,t3.Events_W_D
,t4.site1
,t4.Events_NW
,t5.site1
,t5.Events_NW_D
FROM [TEST].[ak].[test3] AS t1
LEFT JOIN [TEST].[ak].[test2] AS T2
ON t1.number=t2.number AND t1.Events_W = t2.Events_W
LEFT JOIN [TEST].[ak].[test2] AS t3
ON t1.number=t3.number AND t1.Events_W_D=t3.Events_W_D
LEFT JOIN [TEST].[ak].[test2] as t4
ON t1.number=t4.number AND t1.Events_NW = t4.Events_NW
LEFT JOIN [TEST].[ak].[test2] t5
ON t1.number=t5.number AND t1.Events_NW_D=t5.Events_NW_D
Le résultat est le suivant:
Number Site |event_w |site |event_w_d |site |Event_nt |site |event_nw_d
anum |2014 |116 |2014 |99 |2358 |163 |2087 |129
bnum |1570 |17 |1570 |76 |1196 |99 |1196 |577
bnum |1570 |17 |1905 |111 |1508 |26 |1508 |427
bnum |1196 |3 |1475 |2 |1508 |1 |8263 |5
cnum |2087 |15 |NULL |NULL |2087 |92 |NULL |NULL
dnum |1071 |14 |1905 |106 |1071 |21 |1426 |206
gnum |2087 |36 |2087 |97 |2087 |92 |2087 |93
rnum |123 |23 |123 |23 |NULL |NULL |NULL |NULL
le bon résultat doit être ceci:
Number |Site |event_w |site |event_w_d |site |Event_nt |site |event_nw_d
anum |2014 |116 |2014 |99 |2358 |163 |2087 |129
bnum |1196 |3 |1475 |2 |1508 |1 |8263 |5
cnum |2087 |15 |NULL |NULL |2087 |92 |NULL |NULL
dnum |1071 |14 |1905 |106 |1071 |21 |1426 |206
gnum |2087 |36 |2087 |97 |2087 |92 |2087 |93
i doivent distinctes par des nombres, mais sans utiliser 'distinct '.
Aide S'il vous plaît!
Pourquoi ne voulez-vous pas utiliser 'DISTINCT '? Lorsque vous voulez "éliminer" des lignes, vous devez utiliser soit "GROUP BY" (typiquement lors de l'utilisation d'un agrégat), "DISTINCT", soit une autre méthode (comme utiliser une table dérivée avec "RANK" ou "ROW_NUMBER") . Y a-t-il des critères que vous voulez utiliser pour "classer" les enregistrements dans un "nombre" afin que vous puissiez choisir celui que vous voulez retourner? – mroach
Quelles sont vos conditions qui arrivent au résultat de sortie? Aussi, je remarque qu'il n'y a pas de rangée 'rnum' dans votre O/P. – balaji
Mon expert en base de données m'a dit d'éliminer les doublons mais sans utiliser distinct, mais je ne le fais jamais avant sans distincte. – Kalkov