2013-01-23 4 views
0

Avoir une vue TSQL, que j'ai besoin de grouper par une colonne, cependant, j'utilise nhibernate (C#) et je dois aussi spécifier la colonne Id .. ma requête ressemble à:Clause SQL par clause avec deux colonnes

SELECT 
    row_number() over(order by id)as Id, 
     column_name,..etc 
from tblName 
group by column_name 

qui me donne une erreur que l'Id doit être inclus dans la clause group by.

Sinon, je peux écrire:

SELECT 
    row_number() over(order by id)as Id, 
     column_name,..etc 
from tblName 
group by column_name, id 

qui renvoient plusieurs lignes du même nom nom_colonne.

Y a-t-il un moyen de contourner cela?

+1

lors de l'utilisation 'GROUP BY' en particulier sur' T-sql', vous devez regrouper certaines de vos colonnes. Il est facile de comprendre le problème si vous pouvez donner des exemples de dossiers avec le résultat souhaité. –

Répondre

1

Je pense que vous voulez faire ceci:

Select row_number() over(order by column_name) as ID, column_name from (
     Select distinct column_name from tblName 
    ) as A 
0

Voulez-vous dire cela?

SELECT 
    row_number() over(partition by column_name order by id)as Id, 
     column_name,..etc 
from tblName