2009-12-04 6 views
0

J'ai une table qui a un numéro d'ordre, une date et une raison annulées. Le champ de raison est le champ de varchar (255) et il a été écrit par beaucoup de représentant des ventes différent et vraiment difficile à grouper par la catégorie de raison que je dois générer un rapport pour classer des raisons d'annulation. Quelle est la meilleure façon d'analyser les raisons avec TSQL?TSQL Requête pour l'analyse du texte

Exemple de raisons saisies par représentant des ventes

cust already has this order going out 
cust can not hold for item Called to cancel order 
cust doesn't want to pay for shipping 
wife ordered same item from different vendor, sent email 
cst made a duplicate order, sent email 
cst can't hold 
Cust doesn't want to go through verification process so is cancelling order 
doesn't ant to hold for Bo 
doesn't want 
Cust called to cancel the order He can no longer get the product he wants 
cnt hld 
will not comply with export req 
cant' hold 
Custs request 
Cust will not hold for BO 
per. cust. request. 

BTW j'ai SQL Server 2005.

Répondre

4

partie de votre problème est que ce ceux-ci ne sont pas vraiment des codes de raison. Cela me semble être un problème avec votre schéma. S'il n'y a pas de codes de raison prédéfinis à référencer et que vous permettez l'entrée de texte libre pour chaque raison, il n'y a vraiment aucun moyen de le faire directement, sans tirer des raisons distinctes, ce qui ne sera probablement pas très utile.

juste une idée, pouvez-vous ajouter une autre colonne à la table, même si c'est dans un environnement temporaire ou de test, puis donner aux utilisateurs la possibilité d'attribuer un code (par exemple 1 pour les erreurs , 3 pour un mauvais article, etc.) à chaque annulation de commande. Ensuite, effectuez l'analyse sur cela. Je suppose que c'est ce qu'ils attendent de vous, mais je ne sais pas que je vois une meilleure façon. vous pouvez toujours effectuer l'analyse vous-même si vous avez l'autorité/connaissance, mais cela pourrait être douloureux si vous avez une tonne d'annulations. Edit- Je vois maintenant que vous avez tagué ceci avec regex ... il serait possible de configurer des mots-clés spécifiés pour retirer les entrées, mais il faudrait une tolérance intégrée et encore une analyse manuelle après pour les articles qui ne tombent dans aucune catégorie spécifiée en raison de fautes d'orthographe etc./éditer

+0

Merci. Je pensais à ce sujet. Mais le problème est que nous utilisons l'application de traitement des commandes de tiers, nous ne serons pas en mesure de définir la liste des raisons. Mais je peux ajouter une colonne supplémentaire sur la table mais la question reste la même. – THEn

1

+1 à @jmatthews, vous avez vraiment besoin d'avoir des codes de raison qui sont sélectionnés, puis éventuellement permettre l'entrée de forme libre pour la pleine raison .

Si ce n'est pas une option, vous pouvez consulter text clustering. Ne vous attendez pas à ce que cela soit rapide ou facile, cependant, c'est toujours un sujet de recherche ouvert et est lié à la fois à l'IA et à l'apprentissage automatique.