如何在访问中使用数据透视

时间:2018-10-23 11:44:05

标签: sql ms-access

使用三个表(TB_HOPE_INDUSTRY,TB_M_INDUSTRY,TB_PROFILE), 我想得到一个红色的轮廓表。

如何进行sql查询? 请帮助我。

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以创建一个使用所有3个表的查询,并且

  • 在两个PROFILE_ID字段上都加入TB_PROFILE和TB_HOPE_INDUSTRY。
  • 在两个Industry_CD字段上都加入TB_M_INDUSTRY和TB_HOPE_INDUSTRY
  • 从表TB_PROFILE中选择PROFILE_ID和NAME列
  • 添加表TB_HOPE_INDUSTRY中的INDUSTRY_NO列
  • 添加表TB_M_INDUSTRY中的INDUSTRY_NAME列
  • 单击功能区上的CROSSTAB

然后,在设计网格中为 Function Crosstab 属性定义以下设置:

  • 按PROFILE_ID和INDUSTRY_NO分组
  • 为NAME和INDUSTRY_NAME列选择 First 函数
  • 将NAME列的名称更改为PROFILE之类
  • 显示PROFILE作为行标题,INDUSTRY_NO作为列标题,(行业第一)(值)作为值。
  • 不显示PROFILE_ID(仅将其用于分组)

产生的SQL查询应该是这样的:

TRANSFORM First(TB_M_INDUSTRY.INDUSTRY_NAME) AS FirstOfINDUSTRY_NAME
SELECT First(TB_PROFILE.NAME) AS PROFILE
FROM TB_PROFILE INNER JOIN 
    (TB_M_INDUSTRY INNER JOIN TB_HOPE_INDUSTRY ON TB_M_INDUSTRY.INDUSTRY_CD = TB_HOPE_INDUSTRY.INDUSTRY_CD)
  ON TB_PROFILE.PROFILE_ID = TB_HOPE_INDUSTRY.PROFILE_ID
GROUP BY TB_PROFILE.NAME
PIVOT TB_HOPE_INDUSTRY.INDUSTRY_NO;