2016-04-27 21 views
0

私は、企業の一覧を示すSQL Serverビューを作成しており、営業担当者が割り当てられている場合はそれが含まれます。それ以外の場合は、営業担当者の値は空白になります。SQL Server固有の値

営業担当者が割り当てられている会社の場合、このビューに対してクエリを実行すると、2つのレコード、1つは空の営業担当者、もう1つは営業担当者の値です。

私が得ようとしているのは、会社のユニークな値を持つリストで、営業担当者が割り当てられている場合はその値を含み、会社がない場合は営業担当者は空白になります。

下の最初の表は、私の現在の出力が私に与えるものを示しています。下の2番目の表は私が得ようとしているものの例です。どんな助けもありがとうございます。


現在の結果

CustNO Company    SalesPerson 
ACM1 Acme Corp 
ACM1 Acme Corp   Bugs Bunny 
ABC1 ABC Company 
SSP1 Spacely Sprockets 
SSP1 Spacely Sprockets Daffy Duck 
SPN1 Springfield Nuclear 
SPN1 Springfield Nuclear Porky Pig 

期待される結果ここ

CustNO Company    SalesPerson 
ACM1 Acme Corp   Bugs Bunny 
ABC1 ABC Company 
SSP1 Spacely Sprockets Daffy Duck 
SPN1 Springfield Nuclear Porky Pig 

は、ビューのSQL文で、わからないことはできますかどう:

Create View SalesList as (
    select distinct T1.CUSTNO as 'CustNo',   
      T1.COMPNAME as 'Company', 
      T1.SALESCODE as 'SalesID',    
      T2.EMPLNAME as 'Salesperson',  
      case 
       when T2.STATUS = 0 then 'Inactive' 
       when T2.STATUS = 1 then 'Active' 
      end as 'SalesStatus', 
      T2.SALESRATE as 'CommissionPct', 
      case 
       when T3.optfield = 'PARTNERAGENT' THEN T3.VALUE 
       else '' 
      end as 'AgentCode' , 
      case 
       when T3.OPTFIELD = 'PARTNERAGENT' THEN T4.VDESC 
       else '' 
      end as 'AgentName' 
    from Table1 as T1 
    left join Table2 as T2 on T1.SALESCODE = T2.SALESCODE 
    left join Table3 as T3 on T1.CUSTNO = T3.CUSTNO 
    left join Table4 as T4 on T3.VALUE = T4.VALUE 
    where T2.EMPLOYEECD = 'PARTNER') 

うまくいけばこれフィードバックを提供するためのより多くの情報を提供します。ありがとうございました。

+3

あなたのビューの定義を私たちと共有できますか? – Quassnoi

+0

'私はこのビューに対してクエリを実行するとき'あなたの質問をする際に「質問」を提供してください。そうしないと、あなたは非常に下降してしまう可能性が高くなります。また、固定幅のテキストを使って、私たちにイメージをクリックさせる代わりに*質問に追加された例* –

答えて

0

スキーマの詳細がなければ、あなたに答えを与えるのは難しいです。提供されているスクリーンキャップに基づいて、アグリゲーションを実行しようとしていると仮定します。空でない場合は、Sales Personが返されます。トリックとして、組み込み関数MAXが役に立つかもしれません。

SELECT 
    CustNo, Company, MAX("Sales Person") AS "Sales Person" 
FROM 
    tableA 
GROUP BY CustNo, Company 
+0

このオプションをありがとう!!!このトリックは、実際に私が動作するために必要としていた方法で正確に動作し、スクリプトに必要な出力を与えました。よろしくお願いいたします。 –

+0

@ R.Whiteの心配はありません。あなたも答えを受け入れてください、他の人が質問に対する解決策であることが明らかになるでしょうか? – ydoow

関連する問題