我可以根据where子句选择列吗?我在SQL Server 2012中有一个表,其中有一个销售员代码,所有十二个月的数字格式(01 = 1月,02 = 2月,03 = 3月等)。这些行是销售数字的美元金额。
我希望能够从特定月份和销售员代码中选择一行。我的逻辑基本上是从表中选择数量,其中列= 07,代码= 100。
所以基本上在下表中,我如何选择March的行和销售员代码200(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 :(得分:0)
假设我理解了您的问题,您的表格中会有一个salescode
列和另外12列,每个月一个,每个列都存储一个amount
,您希望通过传入一个参数?
如果是这样,这里有一个选项,每个月使用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
答案 1 :(得分:-1)
你必须有不同的表格:
CREATE TABLE tbl_Sales(
SalesPersonCode INT,
Period SMALLINT,
Value INT
)
GO
要获得显示的表值,需要透视数据,但对于其他所有内容,提取它将更容易/更快。像这样:
SELECT Value FROM tbl_Sales
WHERE SalesPersonCode = 100 and Period = 1607;