2016-08-06 10 views
-1

where句に基づいて列を選択できますか?私はSQL Server 2012に営業担当者のコードを持つテーブルを持っていて、すべての12か月は数値形式(01 = 1月、02 = 2月、03 = 3月など)です。行は売上高のドル金額です。SQL Serverクエリの場所に基づいて列を選択します。

特定の月と営業担当者コードから行を選択できます。私のロジックは基本的にテーブルからの列の選択= 07とコード= 100です。

基本的に下の表に、3月の行と10006の営業担当者コードの選択方法を示します。

 
+-----------------------------------+------------+-------------+ 
| SalesPersonCode | Jan | Feb | Mar | Apr | Jun | and so on...| 
+-----------------------------------+------------+-------------+ 
| 100    |50003|13232|66565|65656|96656|  ...  | 
| 200    |65653|43432|10006|65236|23236|  ...  | 
| 300    |32131|43432|44343|56563|21212|  ...  | 
+-----------------------------------+------------+-------------+ 
+0

あなたのテーブルのスキーマを投稿し、それはあなたがやろうとしているが何であるかを明確にしてください。わかりません。検索する列を動的に定義しようとしていますか、複数の列を検索しようとしていますか? –

+1

申し訳ありません - 基本的なテーブルスキーマを追加しました。私は動的に検索する列を定義しようとしています。 – MrPeanutbutter

答えて

-1

あなたは別のテーブルを持っている必要があります:

​​

を使用すると、データをピボット必要になりますが、他のすべてのためにそれを抽出することがより速く/はるかに容易になります示したように、テーブル値を取得するには。このように:

私はあなたの質問を理解してると仮定
SELECT Value FROM tbl_Sales 
WHERE SalesPersonCode = 100 and Period = 1607; 
+0

私はOPが 'Column = 07'を意図していると思いますが、" Columns "という特定の列には一致していません。それが簡単だった場合、OPはそのクエリを実行することができます。 –

+0

@Robertコロンビアあなたのクリスタルボールは、私が持っていないので私の方が優れています。 –

+1

申し訳ありませんが、私は質問を明確にしました。私は今までにテーブルスキーマを追加する方法を理解できませんでした。 – MrPeanutbutter

0

、あなたは、パラメータを渡すことによって表示する各月の1と各店舗amountsalescode列と12の追加の列を持つテーブルがありますか?

もしそうなら、ここでは、各月のcase文を使用して一つの選択肢です:

select salescode, 
     case when @column = 1 then month1 
      when @column = 2 then month2 
      ... 
      when @column = 12 then month12 
     end as amount 
from yourtable 
where salescode = @salescode 
関連する問題