2013-02-06 2 views
0

J'ai une sortie de table comme ....Comment regrouper par les mêmes données avec les enregistrements connectés dans SQL Server

srno billno particular Qty rate vat amount paid balance 
1  25  aaa  5 20 5 105 400 135 
2  25  qqq  5 50 5 225 400 135 
3  25  fff  10 20 5 205 400 135 
4  26  aaa  10 20 5 205 300 245 
5  26  fff  10 20 5 205 300 245  

mais je veux une sortie comme:

srno billno particular Qty rate vat amount paid balance 
1  25  aaa  5 20 5 105 400 135 
       qqq  5 50 5 225   
       fff  10 20 5 205   
2  26  aaa  10 20 5 205 300 245 
       fff  10 20 5 205   

Comment obtenir cette sortie avec une commande de sélection T-SQL ....

+1

C'est un problème d'affichage ** ** - gérer sur votre interface utilisateur frontend ou votre couche de rapport - c'est * pas * un problème de base de données ... –

+1

Je suis d'accord avec @marc_s, cela ressemble à quelque chose de mieux fait sur une sortie frontale par regroupement (en utilisant les en-têtes de regroupement dans les rapports Crystal par exemple). Le premier exemple est ce que je m'attendais à sortir de la base de données. – Bridge

+0

mais je n'utilise pas de rapport de cristal. Je veux le montrer sur la grille ... – user1768465

Répondre

1

Vous devriez être en mesure de le faire en utilisant les fonctions rankingrow_number() et dense_rank:

select 
    case when rn = 1 then cast(rnk as varchar(10)) else '' end srno, 
    case when rn = 1 then cast(billno as varchar(10)) else '' end billno, 
    [particular], 
    [Qty], 
    [rate], 
    [vat], 
    [amount], 
    case when rn = 1 then cast([paid] as varchar(10)) else '' end [paid], 
    case when rn = 1 then cast([balance] as varchar(10)) else '' end [balance] 
from 
(
    select [srno], [billno], [particular], [Qty], [rate], [vat], [amount], [paid], [balance], 
    row_number() over(partition by billno order by srno) rn, 
    dense_rank() over(order by billno) rnk 
    from yourtable 
) src; 

Voir SQL Fiddle with Demo

Le résultat est:

| SRNO | BILLNO | PARTICULAR | QTY | RATE | VAT | AMOUNT | PAID | BALANCE | 
--------------------------------------------------------------------------- 
| 1 |  25 |  aaa | 5 | 20 | 5 | 105 | 400 |  135 | 
|  |  |  qqq | 5 | 50 | 5 | 225 |  |   | 
|  |  |  fff | 10 | 20 | 5 | 205 |  |   | 
| 2 |  26 |  aaa | 10 | 20 | 5 | 205 | 300 |  245 | 
|  |  |  fff | 10 | 20 | 5 | 205 |  |   | 
Questions connexes