Je travaille avec un système de radiomessagerie. Pour certains de mes collègues, je dois créer quelque chose d'un répertoire. Chaque personne dans le répertoire a un PAGER_ID et un MESSAGING_ID. Le PAGER_ID est unique à un périphérique de pagination donné, tandis qu'un MESSAGING_ID est unique à une personne. Un groupe peut travailler en équipes et passer un seul périphérique de décalage à décalage, ce qui fait que plusieurs personnes ont un PAGER_ID identique et un MESSAGING_ID différent. C'est bien et par conception.Comment afficher une relation un à plusieurs
Pour notre annuaire les utilisateurs veulent les critères suivants sont réunis:
- Chaque PAGER_ID pour montrer une fois et une seule fois (je sais que je pourrais le faire en SELECT TOP 1 à la PAGER_ID)
- A dix Le chiffre MESSAGING_ID est préféré quand un PAGER_ID a un MESSAGING_ID de dix chiffres et un ou plusieurs autres MESSAGING_ID avec un nombre différent de chiffres.
- S'il n'y a pas 10 chiffres MESSAGING_ID un MESSAGING_ID avec un autre nombre de chiffres fera.
Succinctement: Ils veulent voir un seul enregistrement pour un PAGER_ID/MESSAGING_ID. Ils ne se soucient pas si chaque personne est répertoriée dans le répertoire. Ils ne se soucient pas vraiment du MESSAGING_ID tant que chaque PAGER_ID est affiché dans le répertoire avec un seul MESSAGING_ID et tant qu'un MESSAGING_ID à 10 chiffres a la préférence sur ceux de 10 chiffres.
J'ai essayé des combinaisons de requêtes TOP et IIF et je n'ai pas réussi à les faire jouer tous ensemble de la manière requise.
Ma requête de sélection de base est:
SELECT
tbl_Amcom_Prod.NAME,
tbl_Amcom_Prod.PAGER_ID,
tbl_Amcom_Prod.MESSAGING_ID
FROM tbl_Amcom_Prod
WHERE
(((tbl_Amcom_Prod.PAGER_ID) Like "241662"
Or (tbl_Amcom_Prod.PAGER_ID) Like "18888"))
ORDER BY tbl_Amcom_Prod.PAGER_ID;
et les résultats dans ce:
| NAME | PAGER_ID | MESSAGING_ID |
--------------------------------------------
| TESTER 1 | 18888 | 18888 |
--------------------------------------------
| SMITH, MARK | 18888 | 5735551262 |
--------------------------------------------
| SUPERVISOR | 241662 | 102621 |
--------------------------------------------
| JOHN, JONES | 241662 | 101436 |
--------------------------------------------
| SEEGER, ROBERT | 241662 | 101409 |
--------------------------------------------
Ils veulent voir ceci:
| NAME | PAGER_ID | MESSAGING_ID |
--------------------------------------------
| SMITH, MARK | 18888 | 5735551262 |
--------------------------------------------
| SUPERVISOR | 241662 | 102621 |
--------------------------------------------
Toutes les idées?
grand merci HansUp! Cela fait exactement ce que je voulais faire. Désolé, il a fallu si longtemps pour vérifier, tester et commenter. Le patron m'a encore sur une autre énigme, bien sûr! Je vais probablement poster ça très bientôt. – mdames