2012-05-07 16 views
0

私は、クエリを持っている:注文SQLクエリデータ

select * from 
(
select i.id, i.art_id, i.c_izm, i.c_zime_izm, i.ac_izm, i.rc_izm, i.f_nos, convert(nvarchar,dateadd(mi,-30,i.datums),100) as dat 
from nol_art_izmaina i 
inner join nol_art a on i.art_id=a.id 
where datepart(year,print_dat)=2005 
order by a.nos --when I add this row, the error shows 
union all 
select distinct null,null,'','','','', f_nos, min(dat) 
from nol_art_izmaina 
where datepart(year,print_dat)=2005 
group by f_nos 
)tablePlusHeaders 
order by dat desc 

私は何が必要ですか?最初のクエリのデータは、a.nosの値で順序付けされている必要があります。それ、どうやったら出来るの?

EDIT
結果表は次のようになりますが、唯一の私のデータを持つ必要があります。そこには、列番号ではありませんが、f_nosので

Name ImpFile/Job   Year 
-------------------------------- 
     Imp01 20.01.2012    This is from set2 
John Clerk    1986 This is from set1 
James Assistant   1990 This is from set1 
     Imp02 26.02.2012    This is from set2 
Anna Manager    1982 This is from set1 
Sam Salesman   1985 This is from set1 
Dean Cleaner    1985 This is from set1 
+1

'order by'節はユニオンで動作しません! – Murtaza

+0

@Murtazaこれらのデータを注文する方法はありますか? – Brezhnews

+0

私はあなたが正確に何を後にしているかを明確にする必要があると思います。 2つの結果セットを結合していますが、最初のセットの結果を特定の列でソートする必要がありますか? 2番目のセットはどのように注文されますか? –

答えて

1

誤りがある可能性があります。ユニオンを注文するには、各選択にマークを追加し、f_nosとそのマークで注文する必要があります。

select * from 
(
    select i.id, i.art_id, i.c_izm, i.c_zime_izm, i.ac_izm, i.rc_izm, i.f_nos, 
     convert(nvarchar,dateadd(mi,-30,i.datums),100) as dat, 
     0 set_id 
    from nol_art_izmaina i 
    inner join nol_art a on i.art_id=a.id 
    where datepart(year,print_dat)=2005 
    union all 
    select distinct null,null,'','','','', f_nos, min(dat), 
     1 set_id 
    from nol_art_izmaina 
    where datepart(year,print_dat)=2005 
    group by f_nos 
) tablePlusHeaders 
order by f_nos, set_id, dat desc 
+0

あなたの声明は私が必要としていたものではありませんでしたが、あなたは私にアイデアを与えました。 – Brezhnews