2017-08-16 1 views
-1

ich so einen Tisch bestellen,wie die Spaltenwerte von der ersten bis zur endgültigen Daten

create table Input_Table(id int, [year] varchar(100),initial int,final int) 

insert into Input_table values(1,'2017',1,11) 
insert into Input_table values(2,'2017',8,11) 
insert into Input_table values(3,'2017',3,33) 
insert into Input_table values(4,'2016',6,44) 
insert into Input_table values(5,'2016',6,44) 
insert into Input_table values(6,'2017',6,44) 
insert into Input_table values(7,'2016',4,8) 
insert into Input_table values(8,'2017',2,8) 

muss ich auf die Anforderung, die Ausgabe erhalten basierend auf dem Bild enter image description here gezeigt

+0

select distinct Anfänge von Input_table um durch anfängliche select distinct Jahr von Input_table –

+0

select 'Wechsel von' deutlichen Anfängen 'auf' endgültig als [Daten], count (Jahr) als '2016', count (Jahr) als '2017' –

Antwort

0

ORDER BY Klausel in der AUSWAHL. Und auch SQL Server specific

SELECT * FROM Input_table ORDER BY initial 
+0

Ich benötige die Spalten [data], [2016], [2017] auch in der Ausgabe, siehe Screenshot. es ist nicht so einfach –

1

Um die gegebene Ausgabe acheive, können Sie diese folgen;

Select 
    DISTINCT(
     'Change From '+ Cast(initial AS Varchar(10))+' to '+Cast(final AS Varchar(10)) 
     ) AS DATA 
    ,SUM(Case When year=2017 Then 1 Else 0 END) AS [2017] 
    ,SUM(Case When year=2016 Then 1 Else 0 END) AS [2017] 
From Input_table 
Group By initial, final 
ORDER BY DATA ASC 

HINWEIS: - Wenn Sie Ihren wirklichen Gebrauch davon geben. Dann könnte ich vorschlagen, bessere Lösung als dies.

Verwandte Themen