J'essaie de mettre à jour ma colonne de table parent si la colonne de la table enfant a toutes les mêmes valeurs pour un seul ParentId.Comment mettre à jour une table parent unique basée sur plusieurs valeurs dans la table enfant
T1 - Parent
| ParentId | StatusId |
|---------------------|------------------|
| 1 | 1 |
|---------------------|------------------|
| 2 | 1 |
|---------------------|------------------|
T2 - Enfant
| ChildId | ParentId | StatusId |
|---------------------|------------------|------------------|
| 1 | 1 | 0 |
|---------------------|------------------|------------------|
| 2 | 1 | 0 |
|---------------------|------------------|------------------|
| 3 | 1 | 0 |
|---------------------|------------------|------------------|
| 4 | 2 | 1 |
|---------------------|------------------|------------------|
| 5 | 2 | 0 |
|---------------------|------------------|------------------|
Si la colonne d'état T2 a tous les 0 pour ParentId 1 état mis alors en T1 à 0 sinon s'il y a un 1 statut pour tout ParentId dans T2 puis définissez le statut dans T1 à 1 ou ne faites rien.
Résultat souhaité après la déclaration de mise à jour:
T1 - Parent
| ParentId | StatusId |
|---------------------|------------------|
| 1 | 0 |
|---------------------|------------------|
| 2 | 1 |
|---------------------|------------------|
T2 - Enfant
| ChildId | ParentId | StatusId |
|---------------------|------------------|------------------|
| 1 | 1 | 0 |
|---------------------|------------------|------------------|
| 2 | 1 | 0 |
|---------------------|------------------|------------------|
| 3 | 1 | 0 |
|---------------------|------------------|------------------|
| 4 | 2 | 1 |
|---------------------|------------------|------------------|
| 5 | 2 | 0 |
|---------------------|------------------|------------------|
Je sais peut-être faire quelque chose comme ceci à l'aide d'une mise à jour et peut-être une boucle de temps mais je ne sais pas trop comment le construire. Toute aide est appréciée.
Qu'avez-vous essayé jusqu'à présent? – Eric
UPDATE PT SET PT.StatusId = CASE QUAND PT.StatusId = 1 THEN 1 QUAND CT.StatusId IN (0,1) THEN 1 FIN DE ParentTable PT JOIN ChildTable CT ON PT.ParentID = CT.ParentId – CursiosAsEver69
En règle générale, essayez d'éviter les boucles. –