2009-12-02 6 views
0

J'ai une grande table avec des disques comme (id, nom, classe)groupe Sélection en utilisant la valeur de la colonne inconnue

Je veux être en mesure de faire une opération « classe » sage ..

mais Je ne sais pas quelles sont toutes les valeurs possibles pour la classe

Actuellement je dois faire est d'utiliser 2 requêtes:

requête 1: résultat = sélectionner la classe distincte de myTable;

Requête 2: pour chaque valeur du résultat,
classWiseRows = sélectionnez * dans myTable où Class = value;

alors je fais

pour chaque valeur Q1.result {
classRows = Q2 où classe = valeur;
doOperation (classRows);
}

Je veux être capable de combiner ces deux requêtes en une seule fois ... pour éviter 2 trajets vers DB.

en utilisant ADO.net, .net 2.0.

+0

en train de faire des voyages à Db pour chaque classe distincte. – Amitd

Répondre

0

Vous pouvez simplement faire une commande par Class et ensuite simplement partitionner la liste lorsque vous la traversez.

-1

Peut-être quelque chose comme

select * from myTable where class in (select distinct class from myTable) 
+0

Cela, où la clause sera toujours vraie. Vous construisez une liste basée sur les valeurs qui apparaissent dans la classe, puis vous restreignez les résultats pour avoir une valeur de classe dans la liste. – unholysampler

+0

ne devrait pas être le même que le groupe par classe. mais dans le code .net je vais obtenir toutes les lignes de la table au lieu de Groupe Classwise à la fois.im faisant actuellement un voyage à DB par 'classe' distincte. – Amitd

1

obtenir le résultat entier à partir de votre première requête dans un datatable

select distinct class from myTable; 

Et puis u peut filtrer votre dossier en utilisant le Select Method du datatable.

Aussi, vous pouvez accomplir votre tâche en utilisant DataView RowFilter

Si vous avez utilisé une version plus dire 3.5+, je l'aurais recommandé LINQ

Hope this helps

Questions connexes