2016-05-24 3 views
1

Привет им с помощью SQL Server я хочу объединить данные по categori У меня есть запрос, как этотОбъединить запрос с группой

SELECT a.NamaMerk, b.NamaTipe from MsMerk as a inner join MsTipe as b 
on a.ID_Merk = b.ID_Merk where a.FlagActive='Y' and b.FlagActive='Y' and a.ID_Merk = b.ID_Merk and b.ID_Tipe = b.ID_Tipe 

Этот Показать данные

enter image description here

я хочу данные Показать, как это

Samsung: Galaxy S7

  Galaxy S8 

Asus: Zenfone 4

  Zenfone 5 

Как данные объединения по категориям, помогают мне благодарственное-х

+0

Так, например, вы хотите, чтобы вторая строка значения Samsung была пустой? Почему вы хотите это сделать? Знание может помочь с лучшим решением. –

ответ

2

Попробуйте это. Я использую row_number ранжировать по NamaMerk, а затем, когда это больше, чем 1 я поставил его в пустую строку

SELECT CASE 
     WHEN T.rank > 1 THEN '' 
     ELSE T.NamaMerk 
     END  AS 'NamaMerk', 
     T.NamaTipe AS 'NamaTipe' 
FROM (SELECT a.NamaMerk, 
       b.NamaTipe, 
       Row_number() 
       OVER( 
        partition BY a.NamaMerk 
        ORDER BY b.NamaTipe) AS 'RANK' 
     FROM msmerk AS a 
       INNER JOIN mstipe AS b 
         ON a.id_merk = b.id_merk 
     WHERE a.flagactive = 'Y' 
       AND b.flagactive = 'Y' 
       AND a.id_merk = b.id_merk) T 
+0

Thank's brad :) –

2
DECLARE @tab TABLE (NamaMerk VARCHAR(10), NamaTipe VARCHAR(10)) 
INSERT INTO @tab 
VALUES ('Samsung','Galaxy S7'),('Samsung','Galaxy S6'), 
('Apple','iPhone 5'),('LG','G5'),('Asus','Zenfone 4'), 
('Asus','Zenfone 7'),('Xiami', 'Mi Note 3'), 
('Asus','Zenfone 5') 

;WITH cte AS 
(
SELECT *,ROW_NUMBER() OVER(PARTITION BY NamaMerk ORDER BY NamaTipe) AS Rn 
FROM @tab 
) 
SELECT CASE WHEN Rn=1 THEN NamaMerk + ':' + NamaTipe 
    ELSE REPLICATE(' ',LEN(NamaTipe)) + NamaTipe END AS Result 
FROM cte; 

Использование row_number, когда это 1, сцепить NamaMerk и NamTipe еще пространство плюс NamaTipe.

Я думаю, что вам это может понадобиться в SSRS, так как оно имеет отношение к дисплею.

+0

Заполнение пустым пространством работает корректно, если вы используете шрифт с монослоем. Тем не менее, хорошее решение. –

Смежные вопросы