[ darko.ostojic @ 07.10.2021. 16:26 ] @
Pozdrav svima,

Code (sql):

CREATE TABLE zaposleni_oprema (
  uniqueid INT IDENTITY
 ,zaposleni_fk INT NULL
 ,oprema_fk INT NULL
 ,vrednost NVARCHAR(50) NULL
 ,CONSTRAINT PK_zaposleni_oprema_uniqueid PRIMARY KEY CLUSTERED (uniqueid)
) ON [PRIMARY]
GO

CREATE TABLE sf_zaposleni_oprema (
  uniqueid INT IDENTITY
 ,naziv NVARCHAR(100) NULL
 ,CONSTRAINT PK_sf_zaposleni_oprema_uniqueid PRIMARY KEY CLUSTERED (uniqueid)
) ON [PRIMARY]
GO

CREATE TABLE zaposleni (
  uniqueid INT IDENTITY
 ,ime NVARCHAR(100) NULL
 ,CONSTRAINT PK_sf_zaposleni_uniqueid PRIMARY KEY CLUSTERED (uniqueid)
) ON [PRIMARY]
GO
 


imam 3 tabele (zaposleni, sf_zaposleni_oprema i zaposleni_oprema):
zaposleni:
uniqueid, ime
1 Marko,
2 Janko
....
sf_zaposleni_oprema:
uniqueid, naziv
1 Cipela,
2 Majica
....
zaposleni_oprema:
uniqueid, zaposleni_fk, oprema_fk, vrednost
1 1 1 42
2 1 2 XL
3 2 2 M

kako mogu da dobijem ovakav prikaz:
Zaposleni_pregled:
Ime, Cipela, Majica
Marko 42 XL
Janko M

nadam se da ste me razumjeli stim sto se sifrarnik tj tabela "sf_zaposleni_oprema" moze dopunjavati. Hvala na odgovoru
[ madcama @ 07.10.2021. 22:50 ] @
join?
[ djoka_l @ 07.10.2021. 23:40 ] @
Nemoj to da radiš u SQL-u
To ti je pivot tabela, napravi normalan upit, pa uradi pivot u Excelu.

[ darko.ostojic @ 08.10.2021. 20:00 ] @
Citat:
djoka_l: Nemoj to da radiš u SQL-u
To ti je pivot tabela, napravi normalan upit, pa uradi pivot u Excelu.


to sam i ja kontao da je mozda najbolje resenje stim sto ne prikazujem u excel-u nego u c#. Hvala na odgovoru!
[ Jpeca @ 08.10.2021. 21:05 ] @
Ako ti nije zgodno da koristiš Excel kako je djoka_l naveo možeš da iskoristiš PIVOT funkciju SQL
Code:

SELECT * FROM (
    SELECT Z.Ime, O.Naziv, R.vrednost
    FROM Zaposleni Z
    INNER JOIN Zaposleni_oprema R ON R.zaposleni_fk = Z.uniqueid
    INNER JOIN sf_zaposleni_oprema O ON O.uniqueid = R.oprema_fk 
) T
PIVOT (
  MAX(vrednost) 
  FOR naziv in (Cipela, Majica)
) PIV


Ako je niz kolona u izrazu FOR promenljiv situacija je nešto komplikovanija - potreban je dynamic SQL
https://stackoverflow.com/ques...-rows-to-columns-in-sql-server ,
ali pošto ti ovo zoveš iz C# onda niz u zagradama (Cipela, Majica,...) možeš da formiraš u kodu iz prethodnog SELECT Naziv FROM sf_zaposleni_oprema