0

This Sql Transact の背後で 2 ~ 3 時間を浪費し、Null Value Skip で混乱しています。

以下のような2つのテーブルがあります。

Table 1: AccountMast
companyID   accname         category
102     PURCHASE  ACCOUNT   Purchase Account
102     SALES ACCOUNT       Sales Account

Table2: Legder

companyID   name            
102     PURCHASE ACCOUNT        
102     SALES ACCOUNT       

以下のように参加しました。

select
case
when a.catagory='Purchase Account' then
l.name 
end as PurchaseAccount,
case
when a.catagory = 'Sales Account' then
l.name   
end as SalesAccount
from ledger l join accountmast a
on l.companyID=a.companyID
and l.name = a.accname
where l.companyID=102
and a.catagory='Purchase Account' or a.catagory='Sales Account'
group by l.name,a.catagory

結果は次のとおりです。

PurchaseAccount     SaleAccount
PURCHASE ACCOUNT    NULL
NULL                SALES ACCOUNT

しかし、私は次のような結果が欲しい:

PurchaseAccount     SaleAccount
PURCHASE ACCOUNT    SALES ACCOUNT

どうやってするの?

4

1 に答える 1

1

GROUP BY句を削除します。

select
    max(case when a.catagory = 'Purchase Account' then l.name end) as PurchaseAccount,
    max(case when a.catagory = 'Sales Account' then l.name end) as SalesAccount
from ledger l
join accountmast a
on l.companyID = a.companyID and l.name = a.accname
where l.companyID=102 and a.catagory IN ('Purchase Account', 'Sales Account')
于 2012-06-05T07:44:47.643 に答える