0

これはおそらく単純な構文エラーですが、1 時間調べてみましたが、見つかりません。別の見方をすれば、正しい方向に進むことができるのではないでしょうか??

select 
    lname +', '+ Fname as "Author Name"
from 
    Author a
join 
    BOOKAUTHOR ba on a.AuthorID = ba.authorid
where 
    ba.isbn =  (select ba.isbn  
                from
                    (select 
                        ROW_NUMBER() over (order by sum(quantity) desc) as "Placement", 
                        b.isbn,
                        sum(QUANTITY) as "Total"
                     from 
                        ORDERITEMS oi
                     join 
                        Books b on b.ISBN = oi.isbn
                     group by 
                        b.ISBN)
                where Placement = 1) --the "WHERE" is giving me an error. 
4

1 に答える 1

4

FROM 句で派生テーブルをテーブル ソースとして指定する場合は、サブクエリにエイリアスを指定する必要があります。

select lname +', '+ Fname as "Author Name"
from Author a
join BOOKAUTHOR ba on
a.AuthorID = ba.authorid
where ba.isbn = 
       (select q.isbn -- <== notice the "q"
        from
            (select ROW_NUMBER() 
            over (order by sum(quantity) desc) as "Placement", 
            b.isbn,
            sum(QUANTITY) as "Total"
            from ORDERITEMS oi
            join Books b
            on b.ISBN = oi.isbn
            group by b.ISBN) q -- <== notice the "q"
        where Placement = 1)

MSDN ライブラリのドキュメントから:

[ FROM { <table_source> } [ ,...n ] ] 
<table_source> ::= 
{
    ...
    | derived_table [ AS ] table_alias [ ( column_alias [ ,...n ] ) ]
    ...
}
于 2013-10-20T20:35:29.560 に答える