Nach 5 nummern leere Zelle

xxfreestyle20xx

Neuer Benutzer
Beiträge
4
Hallo habe in einer Tabelle verschiedene Belegnummern

z.b
50
50
51
51
51
51
52
52
52
52
Nun soll nach 5 Nrn also ab 55 eine leere zeile eingefügt und dann weiter gezählt werden.
Da die Abfrage für mich schon ziemlich unübersichtlich ist bitte ich euch eure antworten etwas genauer zu definieren da ich nicht ganz weiß wo ich was hinzufügen soll.

Code:
 SELECT
Dense_RANK() Over (Order by pkn.name3 asc) As Belegnummer,
Row_number ()  OVER (Partition BY pkn.name3 Order by (rko.belegnr)asc) AS Position,


     ART.Bez3 as Teil_und,
     REPLACE (RPO.Mg,'.',',') as Menge,
   
     Case
        When  rpo.Me = 'STK' then 1 
        When rpo.Me = 'LFM' then 26
        When rpo.Me = 'MIN' then 28
     end,   
    
     '?' AS Lagerort,
     '14' AS Lieferbedingung,
     '' AS Gewicht,
     '' AS Verpackungsgewicht,
     '' AS Wunschtermin,
     ''AS Liefertermin,
     '' AS TransPortZeitAenderSelect,
     '' AS Zeiteinheit_tt,
    Ltrim (AKO.FremdNr) as Bezeichnung_und,
     '' AS Bezeichnung_und,
     '' AS Bezeichnung_und,
     '#'+AKO.BelegNr as Bezeichnung_und,
     REPLACE (RPO.Preis,'.',',') as Einzelpreis,
     '' AS wertm_R_Z,
     '' AS wertm_R_Z,
     '' AS wm_Rab_ZuArt,
     '' AS wm_Rab_ZuArt,
     '' AS R_Z_und,
     '' AS R_Z_und,
     '' AS R_Z_und,
     '' Rab_ZuArt_und,
     '' Rab_ZuArt_und,
     '' Rab_ZuArt_und,
     PKN.Name3 as GWName,
     RKO.Belegnr as ABC_ReNr,
     LSK.BelegNr as LieferscheinNr,
     AKO.Info
   
FROM     OpAusgangsrechnung RKO  WITH (NOLOCK)
    INNER JOIN OpArPos RPO                 WITH (NOLOCK) ON RPO.ArId = RKO.ArId
    INNER JOIN OpArArt RCA                 WITH (NOLOCK) ON RCA.ArtId = RKO.ArArtId
    LEFT OUTER JOIN OpKunde KUN         WITH (NOLOCK) ON KUN.KundId = RKO.AuftraggeberId
    INNER JOIN OpKunde KRE                 WITH (NOLOCK) ON KRE.KundId = RKO.FaktEmpfaengerId
    INNER JOIN OpKunde KRG                 WITH (NOLOCK) ON KRG.KundId = RKO.ReguliererId
    LEFT OUTER JOIN OpArtikel ART         WITH (NOLOCK) ON ART.ArtikelId = RPO.ArtikelId
    LEFT OUTER JOIN OpAuftrag AKO         WITH (NOLOCK) ON AKO.AufId = RPO.AufId
    LEFT OUTER JOIN OpLfsPos LSP        WITH (NOLOCK) ON LSP.PosId = RPO.LfsPosId
    LEFT OUTER JOIN OpLieferschein LSK     WITH (NOLOCK) ON LSK.LfsId = LSP.LfsId
    INNer Join OpPerson PKN             WITH (NOLOCK) ON PKN.PersonId = LSK.WarenEmpfaengerId
    LEFT OUTER JOIN OpKostenstelle KST    WITH (NOLOCK) ON KST.KostenstellenId = RPO.KostenstellenId
WHERE (Rko.belegnr = '107141') and (AKO.Info is not null)
order by pkn.name3 asc
 
Werbung:
Das ganze wird in ein excel exportiert und nachdem mit der spalte ako.fremdnr 5 gruppen gebildet wurden soll dann eine leere zeile eingefügt werden
sprich :
1
1
1
2
2
3
4
4
4
5
5
leere zeile
6
6
 
mache ein (dense_rank() over (order by i) -1) % 5 und füge in der Applikation immer eine leere Zeile ein, wenn diese Spalte von 4 auf 0 wechselt.

Ansonsten merke Dir: eine DB ist kein Excel, solche 'Schnörkel' sind eher nicht Aufgabe der DB. Wenn Du es doch die DB machen lassen willst so wird wohl der einfachste Weg der einer Stored Proc sein.
 
Das ORDER BY i musst du natürlich durch deine Spalte ersetzen, also:
Code:
(DENSE_RANK() OVER (ORDER BY pkn.name3 ASC) - 1) % 5 AS Blockzaehler,
Man könnte sich jetzt auch noch eine Zeile mit NULL Werten zu recht fummeln aber das hat in so einer DB Abfrage wirklich nichts zu suchen. Besser die Aplikation macht die Leerzeile.
 
Werbung:
Zurück
Oben