J'ai passé plusieurs mois à l'exploration de données et à la création d'une technique pour trouver des informations pour une entreprise. J'ai du mal à mettre les données dans une présentation appropriée et valable sur la façon de résumer l'information dans SAS. J'ai 3 questions.Comment créer ces instructions case dans proc sql et ajouter lorsque les tables sont remplacées?
1) comment puis-je dire dans proc sql "Si matched_by_t2> b2_c2 puis ajouter dans la nouvelle colonne "non bueno"
2) est-il un moyen d'avoir "(BC_C2/original_count)%" Comment pourrais-je insérer ce signe de pourcentage
3) également si j'exécute cette requête plusieurs fois pour une liste d'ensembles de données comment puis-je obtenir ces nouvelles tables nommées "e_data_unmatched" chaque fois qu'une nouvelle table est créée et écrasée imgur Je montre deux lignes chaque fois que le programme s'exécute les tables sont remplacées, donc je veux m'assurer que chaque fois que la boucle s'exécute, les nouveaux enregistrements s'ajoutent à la table plutôt que d'écraser 1http://imgur.com/bzLefXy
Merci beaucoup!
proc sql;
create table wanted as
select t1.occurences as original_count
,t2.occurences as matched_by_T1
,t3.occurences as matched_by_T2
,t2.occurences+t3.occurences as B2_C2
,t4.occurences as not_matched
,t5.occurences as matched_by_t2
from (select count(*) as occurences from query_for_reports1) t1
,(select count(*) as occurences from query_for_reports1 where edsys is not null) t2
,(select count(*) as occurences from e_data_unmatched where ip is not null) t3
,(select count(*) as occurences from WORK.E_DAT_UNMATCHED where IpS= .) t4
,(select count(*) as occurences from work.Append_table13) t5
;
quit;
Plusieurs choses ne vont pas ici. Pour l'un, votre ligne 'cast' n'est pas une syntaxe SAS valide (pas dans ce proc sql au moins). Deuxièmement, il semble qu'elle souhaite conditionnellement avoir la valeur "no bueno" dans une colonne, pas une colonne appelée "no bueno". Enfin, vous avez ajouté des éléments à son code sans corriger ses erreurs (par exemple, dupliquer les colonnes 'matched_by_t2' dans une instruction select); ce qui signifie que, même si vos ajouts étaient corrects, ce code ne fonctionnerait toujours pas. – user2877959
@ user2877959 Y at-il un moyen de dire que sa réponse était juste pour 50% de ma question? Qu'est-ce que l'étiquette de pile? –
Je dirais que cette réponse était juste pour 33% de votre question en supposant qu'il avait raison de comprendre votre premier point. Je suppose que la philosophie de la pile est que vous avez voté une réponse utile et/ou que vous avez accepté une réponse qui a complètement répondu à votre question. – user2877959