Вернуть 1 строку SQL Запрос? - PullRequest
1 голос
/ 21 февраля 2020

Я создал запрос:

select distinct
m.Modelo_ID as alternativeidentifier, 
m.Modelo as description, 
--case when  dt.DadosTipo_ID = 810 then mc.MovDado end as Tensaorede,
case when dt.dadostipo_id = 42 and c.classe_id = 322 then mc.MovDado
when dt.dadostipo_id = 628 and c.classe_id = 319 then mc.MovDado end as subgroup,
case when dt.DadosTipo_ID = 810 then mc.MovDado end as Tensaorede,
case when dt.DadosTipo_ID = 810 then mc.MocDadoID end as IDTensaorede,
case when dt.DadosTipo_ID = 133 then mc.MovDado end as Potencia,
case when dt.DadosTipo_ID = 315 then mc.MovDado end as QtdStringBoxporInversor,
case when mc.MocDadoID in (11877,11875,11961) and dt.DadosTipo_ID = 850 then 1 end as QtdSoftMonitorSugerido,
case when dt.DadosTipo_ID = 133 and c.classe_id = 322 then replace(mc.MovDado,'W','') end as QtdPaineisSuportadosporEstrutura
from modelos as m inner join
Classes as c on c.Classe_ID = m.ClasseID inner join
ModelosCaracteristicas as mc on mc.mocmodeloid = m.Modelo_ID inner join
dadostipos as dt on dt.DadosTipo_ID = mc.MocDadosTipoID inner join
dbo.ModelosPrecos as mp on M.Modelo_ID = mp.MPRModeloID
where 
m.modelo_id = 33894
group by
m.Modelo_ID,
m.Modelo,
c.classe,
m.modvendavel,
c.classe_id,
mc.MovDado,
dt.dadostipo_id,
mc.MocDadoID,
mp.MPRPrecoAtivoSR, mp.MPRPrecoNormalAtivo, mp.MPRDataValidRebate

Но мне нужно вернуться в 1 строку:

alternativeidentifier   description subgroup    Tensaorede  IDTensaorede    Potencia    QtdStringBoxporInversor QtdSoftMonitorSugerido  QtdPaineisSuportadosporEstrutura
33894   INVERSOR SMA SHP75-10 SUNNY 75KW TRIFASICO 380V MPPT    NULL    NULL    NULL    NULL    NULL    NULL    NULL
33894   INVERSOR SMA SHP75-10 SUNNY 75KW TRIFASICO 380V MPPT    NULL    NULL    NULL    NULL    NULL    1   NULL
33894   INVERSOR SMA SHP75-10 SUNNY 75KW TRIFASICO 380V MPPT    NULL    NULL    NULL    NULL    16  NULL    NULL
33894   INVERSOR SMA SHP75-10 SUNNY 75KW TRIFASICO 380V MPPT    NULL    NULL    NULL    75000W  NULL    NULL    75000
33894   INVERSOR SMA SHP75-10 SUNNY 75KW TRIFASICO 380V MPPT    NULL    Trifásico 380V  11863   NULL    NULL    NULL    NULL
33894   INVERSOR SMA SHP75-10 SUNNY 75KW TRIFASICO 380V MPPT    SMA NULL    NULL    NULL    NULL    NULL    NULL

Кто мне может помочь?

Tks

1 Ответ

0 голосов
/ 21 февраля 2020

Похоже, вам нужна агрегация:

select m.Modelo_ID as alternativeidentifier, 
       m.Modelo as description, 
       max(case when dt.dadostipo_id = 42 and c.classe_id = 322 then mc.MovDado
when dt.dadostipo_id = 628 and c.classe_id = 319 then mc.MovDado end) as subgroup,
       max(case when dt.DadosTipo_ID = 810 then mc.MovDado end) as Tensaorede,
       max(case when dt.DadosTipo_ID = 810 then mc.MocDadoID end) as IDTensaorede,
       max(case when dt.DadosTipo_ID = 133 then mc.MovDado end as Potencia,
       max(case when dt.DadosTipo_ID = 315 then mc.MovDado end) as QtdStringBoxporInversor,
       max(case when mc.MocDadoID in (11877,11875,11961) and dt.DadosTipo_ID = 850 then 1 end as QtdSoftMonitorSugerido,
       max(case when dt.DadosTipo_ID = 133 and c.classe_id = 322 then replace(mc.MovDado,'W','') end) as QtdPaineisSuportadosporEstrutura
from modelos m inner join
     Classes  c
     on c.Classe_ID = m.ClasseID inner join
     ModelosCaracteristicas mc
     on mc.mocmodeloid = m.Modelo_ID inner join
     dadostipos dt
     on dt.DadosTipo_ID = mc.MocDadosTipoID inner join
     dbo.ModelosPrecos as mp on M.Modelo_ID = mp.MPRModeloID
where  m.modelo_id = 33894
group by m.Modelo_ID, m.Modelo;
...