0
votes

Proc SQL: créer une vue en copiant des données d'une année à une autre

J'ai un problème que je n'ai pas été capable de trouver une solution pour StackoverFlow ou ailleurs et je ne suis pas sûr, s'il est possible de résoudre SAS PROC SQL.

Mon objectif est de produire une vue (z ) Basé sur un jeu de données (a) et une vue (B). Le problème est que (a) peut être mis à jour à l'année réelle au début de l'année, tandis que (B) ne peut être mise à jour que plus tard dans l'année. Néanmoins, je veux que mon point de vue (z) produise des données au début de l'année (même si elle est provisoirement), qu'est-ce qui n'est naturellement possible que si des données sont disponibles de la part (a) et (b). Donc, ce que je veux, c'est que la vue (z) utilise la dernière année disponible de (b) et l'utiliser comme si elle serait l'année réelle (donc essentiellement d'imputer des données à (B) pour la dernière année de données dans (A). J'ai essayé de le faire avec le code suivant, mais cela n'a pas fonctionné exactement comme je le veux: xxx

Il produit les données attendues de la première et de l'année dernière, Mais pas dans les années qui y produisent deux rangées pour une observation. La première observation contient des données de l'année réelle, l'autre observation contient des données de la dernière année.

a une idée de savoir comment résoudre ce problème?


2 commentaires

On dirait que vous voulez faire deux jointures. Une pour trouver les résultats réels (fin de l'année) et une seconde pour trouver les résultats prévus (début de l'année). Ensuite, dans la fonction Sélectionner une utilisation de Coalece () pour hiérarchiser les résultats réels lorsqu'ils sont disponibles.


Pouvez-vous ajouter quelques échantillons de données et résultat attendu à la question? Je suppose que vous voulez vous joindre à une sous-requête corrélée de fg_gji_skraft


3 Réponses :


1
votes

On dirait que vous voulez juste rejoindre deux fois. Une quel que soit des matchs d'année et une année d'année + 1 matchs. Ensuite, utilisez la fonction de coalesce () pour choisir la valeur à signaler. Alors quelque chose comme xxx


0 commentaires

0
votes

La jointure proposée (voir la réponse ci-dessous de Tom, 6 février) fonctionne bien si les valeurs de la variable clés (Jahr, GNR) sont les mêmes pour les différentes années. Cependant, il y a un problème supplémentaire que plusieurs municipalités peuvent se fusionner dans une seule municipalité au début de l'année. Ceci est exprimé dans le changement de numéro de communauté (GNR). Les deux communautés qui fusionnent le même numéro, c'est-à-dire le numéro de la communauté plus large ou même un nouveau numéro. Les valeurs des dernières données connues (SKAB) doivent être copiées à l'année suivante, écrasant les données manquantes. Si deux communautés fusionnent, les données doivent être ajoutées. Est-ce possible en vue?


0 commentaires

0
votes

Voici ma solution, en utilisant certaines sous-requêtes. Peut-être qu'il y a un moyen plus simple de le faire?

J'ai modélisé les différents niveaux territoriaux avec un format. Il prend l'année territoriale et le numéro de la municipalité comme argument et fournit le numéro de la municipalité résultant du nouveau niveau territorial. xxx


0 commentaires