La mise à jour d'une colonne en fonction de la valeur d'une autre colonne
J'ai une table nommée Fournisseur dans cette table j'ai une colonne appelée AccountTerms qui ne montre qu'une valeur (0, 1, 2, 3) et ainsi de suite. J'ai aussi une colonne que je veux utiliser (ulARAgeing
) afin de refléter le sens de cette valeur, tels que:
0: Current
1: 30 Days
2: 60 Days
et ainsi de suite...
Ce dont j'ai besoin est un script qui va chercher la valeur dans AccountTerms et ensuite mettre à jour ulARAgeing
pour montrer le mot valeur indiquée ci-dessus. Comment puis-je faire cela?
juste pour le rendre clair. AccountTerms et ulARAgeing appartient à la même table? Pouvez-vous nous parler de votre structure des tables?
"mise à jour ulARAgeing" Où est la valeur? Une autre table? Il sera une mise à jour à un moment accompli par le biais d'un formulaire?
"mise à jour ulARAgeing" Où est la valeur? Une autre table? Il sera une mise à jour à un moment accompli par le biais d'un formulaire?
OriginalL'auteur 4shg85 | 2015-08-19
Vous devez vous connecter pour publier un commentaire.
Je vais essayer de vous l'expliquer d'une manière simple, autant que possible, de sorte qu'il est facile à comprendre :
Supposons, vous avez une table
Vendor
de configuration quelque chose comme ceci:Et, ensuite, nous allons insérer des valeurs de l'échantillon pour les deux colonnes dans
Vendor
table:Prochaine, nous allons écrire une instruction de mise à jour pour mettre à jour votre
ulARAgeing
colonne basée sur les valeursAccountTerms
colonne de la même table:CASE WHEN
est similaire à l'utilisationIF..ELSE
déclaration dans la plupart des autres langages de programmation. Donc, ici, nous allons être la mise à jour de l'existantulARAgeing
valeur différente de la chaîne de valeur en fonction de l'état dans le cas où la déclaration. Ainsi, par exemple, si leAccountTerms = 0
ensuite, nous allons mettre à jour la valeur deulARAgeing
`en cours', et ainsi de suite.Pour vérifier si la déclaration ci-dessus a fonctionné correctement, il vous suffit de lancer la mise à jour de la déclaration ci-dessus, puis sélectionnez de nouveau la table:
Résultat:
SQL Violon Démo
Nulle part je n'ai lu dans la question qu'il a
more than 3 records
. Aussi, comment est-il même pas d'importance si il a 1..2...ou 1000 enregistrements avec le mêmeAccountTerms
?"(c'est à dire 0, 1, 2, 3) et ainsi de suite"... ", tels que: et ainsi de suite..."
Désolé, ça n'a aucun sens. À ma connaissance, il signifie qu'il a des valeurs comme 0,1,2,3...et ainsi de suite dans le
AccountTerms
colonne. Et peut-être, j'ai peut-être pas le comprendre correctement.Salut les Gars, eh Bien celui-ci a fonctionné pour moi le meilleur (surtout parce que j'ai pu comprendre) et il fait exactement ce dont j'avais besoin pour faire...
OriginalL'auteur FutbolFan
En supposant que vous souhaitez d'un simple script de mise à jour, alors il sera comme ceci:
En supposant que vous voulez un script automatiquement à jour la colonne à partir d'une logique de numérique de la progression. Ce serait comme ceci:
Si, par chance, la valeur de "ulARAgeing" viennent d'une autre table, puis le script à l'aide de "AVEC", vous devez utiliser une jointure pour obtenir la valeur correcte, au lieu d'utiliser une logique de progression.
OriginalL'auteur Andrew Paes