2010-01-28 9 views
0

La semaine dernière, Damir Sudarevic de cette communauté a aidé avec cette requête à générer un numéro de séquence. J'ai un problème avec quelques problèmes avec celui-ci. Pour une raison quelconque, les enregistrements ne sont pas affichés par OrderDetailsID malgré la spécification dans l'ordre par.Numéro de séquence SQL Server numéro

Les deux colonnes dans la requête ci-dessous et suivants seqNo affiche les enregistrements comme indiqué ci-dessous

Seq SeqNO 
1A 1 
2A 2 
2B 2A 
2C 2B 
3A 3 
3B 3A 
3C 3B 

Au lieu de cela, comment puis-je l'obtenir comme indiqué ci-dessous

SeqNo 
1 
2A 
2B 
2C 
3A 
3B 
3C 

WITH OrderDetails 
     AS (SELECT prodcode 
        ,prodDesc 
        ,orderID 
        ,OrderDetailID 
        ,DENSE_RANK() OVER (ORDER BY prodCode) AS [RnkSeq] 
        ,ROW_NUMBER() OVER (PARTITION BY prodCode ORDER BY OrderDetailID) AS [NumSeq] 
      FROM OrderDetails where orderID=65303 
      ) 
    SELECT OrderDetailID 
     ,prodcode 
     ,CAST(RnkSeq AS varchar(10)) + CHAR(64 + NumSeq) as Seq 
     ,Replace(CAST(RnkSeq AS varchar(10)) + CHAR(63 + NumSeq),'@','') AS SeqNo 
     ,orderID 
    FROM OrderDetails 

Répondre

0

Je ne vois pas ORDER BY?

+0

Lucero, ce n'est pas là dans la requête que j'ai posté mais, même si je l'ajoute, il n'apparait pas en ordre par OrderDetailsID – acadia

0

Ajouter ceci à la fin, après la FROM:

ORDER BY SeqNo 

Hope this helps.