Zapytanie rozdzielające dane z komórki po separatorze

0

Witam mam problem z zapytaniem:

  ,case when charindex(',', h.usernames)>0 then SUBSTRING(h.UserNames, 1,CHARINDEX(',',h.UserNames)-1) else h.usernames end Prowadzacy
  ,case when charindex(',', h.usernames)>0 then SUBSTRING(h.UserNames, CHARINDEX(',',h.UserNames)+1, CHARINDEX(',',h.UserNames)) else '' end Pomocnik

W wyniku dostaje:

Operacja Prowadzacy Pomocnik Jednostka Data Godzina Tydzien Miesiac
Kompletacja (EX) NAZWISKO NAZWISKO2 RP-10-05-00 02.01.2019 0635 2019KW1 2019M1

Ale zmieniła się koncepcja i teraz muszę wyświetlić dane w taki sposób:

Operacja Pracownik Jednostka Data Godzina Tydzien Miesiac
Kompletacja (EX) NAZWISKO RP-10-05-00 02.01.2019 0635 2019KW1 2019M1
Kompletacja (EX) NAZWISKO2 RP-10-05-00 02.01.2019 0635 2019KW1 2019M1

Czyli potrzebuje tak zmodyfikować zapytanie aby pomocnik wyświetlał się w tym samy rekordzie i po prostu będzie miał takie same dane jak prowadzący.
Proszę o pomoc bo myślę i myślę i nie mogę wymyślić jak do tego podejść.

0

Masz ID, albo jakiś inny PK?
EDIT:
W sumie można to załatwić UNIONem

SELECT Operacja, NAZWISKO As Prowadzacy, Pomocnik, Jednostka, Data, Godzina, Tydzien, Miesiac FROM tabela
UNION ALL
SELECT Operacja, NAZWISKO2 As Prowadzacy, Pomocnik, Jednostka, Data, Godzina, Tydzien, Miesiac FROM tabela
1
DECLARE @test TABLE
    (
        operacja VARCHAR(100) ,
        usernames VARCHAR(100) ,
        jednostka VARCHAR(100) ,
        czas DATETIME
    );

INSERT INTO @test
VALUES ( 'Kompletacja (EX)', 'Patryk Kozłowski,Piotr Chrzanowski' ,
         'RP-10-05-00' , '2019-01-02 06:21:35.000' ) ,
       ( 'Nuda', 'Marcelina Dobrowolska,Krzysztof Bednarczyk', 'RP-12-03-00' ,
         '2019-02-03 07:22:01.000' );

SELECT unpiv.operacja ,
       unpiv.Pracownik ,
       unpiv.jednostka ,
       unpiv.czas
FROM   (   SELECT h.operacja ,
                  h.jednostka ,
                  h.czas ,
                  CASE WHEN CHARINDEX(',', h.usernames) > 0 THEN
                           SUBSTRING(
                               h.usernames, 1, CHARINDEX(',', h.usernames) - 1)
                       ELSE h.usernames
                  END Prowadzacy ,
                  CASE WHEN CHARINDEX(',', h.usernames) > 0 THEN
                           SUBSTRING(
                               h.usernames ,
                               CHARINDEX(',', h.usernames) + 1,
                               CHARINDEX(',', h.usernames))
                       ELSE ''
                  END Pomocnik
           FROM   @test h ) AS t UNPIVOT(Pracownik FOR Pracownik2 IN(Prowadzacy, Pomocnik))unpiv;
--WHERE  unpiv.operacja = 'Nuda';

screenshot-20190327181613.png

1 użytkowników online, w tym zalogowanych: 0, gości: 1