add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE Proveedor (
idProveedor int identity(1,1) NOT NULL,
RazonSocial nvarchar (max) NOT NULL,
CONSTRAINT PK_Proveedor PRIMARY KEY (idProveedor),
)

CREATE TABLE Servicio(
idServicio int identity (1,1) NOT NULL,
TipoServicio nvarchar(35) NOT NULL,
CONSTRAINT PK_Servicio PRIMARY KEY (idServicio)
)

CREATE TABLE Equipo(
idEquipo int identity (1,1) NOT NULL,
TipoEquipo nvarchar(35) NOT NULL
CONSTRAINT PK_Equipo PRIMARY KEY (idEquipo)
)

CREATE TABLE Rel_ProvServicio(
idProveedor int NOT NULL,
idServicio int NOT NULL,
CONSTRAINT FK_ProvServicio FOREIGN KEY (idProveedor) REFERENCES Proveedor(idProveedor),
CONSTRAINT FK_ServicioProv FOREIGN KEY (idServicio) REFERENCES Servicio(idServicio)
)

CREATE TABLE Rel_ProvEquipo(
idProveedor int NOT NULL,
idEquipo int NOT NULL,
CONSTRAINT FK_ProvEquipo FOREIGN KEY (idProveedor) REFERENCES Proveedor(idProveedor),
CONSTRAINT FK_EquipoProv FOREIGN KEY (idEquipo) REFERENCES Equipo(idEquipo)
)
--DATA PROVIDER
INSERT INTO PROVEEDOR (RazonSocial) VALUES ('Provider 1')
INSERT INTO PROVEEDOR (RazonSocial) VALUES ('Provider 2')
INSERT INTO PROVEEDOR (RazonSocial) VALUES ('Provider 3')

Msg 207 Level 16 State 1 Line 65
Invalid column name 'idServices'.
SELECT
P.RazonSocial as [Razon Social Proveedor],
(
SELECT STRING_AGG(S.TipoServicio, '; ')
FROM Rel_ProvServicio ps
INNER JOIN Servicio S ON ps.idServicio = S.idServicio
WHERE ps.idProveedor = P.idProveedor
) AS Servicios,
(
SELECT STRING_AGG(E.TipoEquipo, '; ')
FROM Rel_ProvEquipo pe
INNER JOIN Equipo E ON pe.idEquipo = E.idEquipo
WHERE pe.idProveedor = P.idProveedor
) AS Equipos
FROM Proveedor P
ORDER BY P.idProveedor;
Razon Social Proveedor Servicios Equipos
Provider 1 Service 1; Service 2; Service 3 Equipment 1; Equipment 2; Equipment 3
Provider 2 null Equipment 1; Equipment 2; Equipment 3
Provider 3 null null