необходимо исключить null из строк с одинаковыми данными

#sql-server

#sql-server

Вопрос:

мои данные:-

 UserId |ShopId  |PlanName
------------------------
241    | 17679  |NULL
241    | 20037  |NULL
241    | 20037  |440
  

данные, которые мне нужны :-

 UserId |ShopId  |PlanName
------------------------
241    | 17679  |NULL
241    | 20037  |440
  

это мой запрос

 select distinct so.UserId,so.ShopId, (select sa1.beatplanid from beatplansetting bps1 
inner join shopassign sa1 on bps1.beatplanid = sa1.beatplanid
where
so.shopid = bps1.shopid
and
sa.userid = sa1.userid
) as PlanName from 
shopinandoutlog so
left join beatplansetting bps on so.shopid = bps.shopid
left join shopassign sa on so.userid = sa.userid and bps.beatplanid = sa.beatplanid
where so.userid=241
and
convert(varchar,mobiletransactiondate,106)='01 oct 2016'
and
so.shopid in (20037,17679)
  

Ответ №1:

Я думаю, это делает то, что вы хотите:

 select UserId, ShopId, MAX(PlanName) as PlanName
from t
group by UserId, ShopId;
  

Я не знаю, какое отношение ваш запрос имеет к фактическому вопросу. В вашем запросе есть несколько таблиц и столбцов, не упомянутых в запросе или образце данных.