在 SQL select 查询中将格式从数值更改为文本值
Changing the format from numerical value to text value in an SQL select query
在下面的字符串中,我试图将值 'tblContacts.JobTitle 从数值转换为文本值,而不必 link 我的查询到 table 其中原始记录 ('tblJobTitles.JobTitle') 坐。 table 'tblContacts' 中的字段 'JobTitle' 从 table 'tblJobTitles' 中提取它的值。当我使用下面的查询时,不幸的是查询提取了职位的唯一 ID 号而不是文本值。是否需要重新格式化 select 查询才能这样做?下面是我的代码,我认为您可以通过添加“.text”将值格式化为文本,但不幸的是,这不起作用。
sql_get = "SELECT [tblContacts].[CompleteName], [tblContacts].[CurrentPosition], [tblContacts].[Level], [tblContacts].[ContractType], [tblContacts].[ID], [tblContacts].[Foto], [tblTeams].[Team], [tblJobTitles].[JobTitle] FROM [tblContacts] INNER JOIN [tblTeams] ON [tblContacts].[Team] = [tblTeams].[ID] LEFT JOIN [tblJobTitles] ON [tblJobTitles].[ID] = [tblContacts].[JobTitle] WHERE [tblTeams].[team] = '" & cboDepartments.Value & "'"
Me.frmstaticdatadepartments08.Form.RecordSource = sql_get
据我了解tblContacts.JobTitle
是一个外键。实际职位位于另一个 table、tblJobTitles
中。获得它的唯一方法是通过 sub-select 或加入另一个 table 来索取它。
SELECT tblContacts.CompleteName, tblContacts.CurrentPosition, tblContacts.Level,
tblContacts.ContractType, tblContacts.ID, tblContacts.Foto,
tblTeams.Team, tblJobTitles.JobTitle
FROM tblContacts
LEFT JOIN tblJobTitles ON tblContacts.JobTitle = tblJobTitles.Id
INNER JOIN tblTeams ON tblContacts.Team = tblTeams.ID
WHERE [tblTeams].[team] = '" & cboDepartments.Value & "'"
我不得不猜测一些列名称,tblJobTitles.Id
和 tblJobTitles.JobTitle
,但我希望你明白我的意思。
我所做的更改是加入 tblJobTitles
然后要求标题而不是参考 ID,tblJobTitles.JobTitle
。
编辑:
显然 Access 需要括号才能进行多个连接 - see msdn:
In cases where you need to join more than one table, you can nest the INNER JOIN clauses.
所以改为这样做:
SELECT tblContacts.CompleteName, tblContacts.CurrentPosition, tblContacts.Level,
tblContacts.ContractType, tblContacts.ID, tblContacts.Foto,
tblTeams.Team, tblJobTitles.JobTitle
FROM (tblContacts
INNER JOIN tblTeams ON tblContacts.Team = tblTeams.ID)
LEFT OUTER JOIN tblJobTitles ON tblContacts.JobTitle = tblJobTitles.Id
WHERE [tblTeams].[team] = '" & cboDepartments.Value & "'"
在下面的字符串中,我试图将值 'tblContacts.JobTitle 从数值转换为文本值,而不必 link 我的查询到 table 其中原始记录 ('tblJobTitles.JobTitle') 坐。 table 'tblContacts' 中的字段 'JobTitle' 从 table 'tblJobTitles' 中提取它的值。当我使用下面的查询时,不幸的是查询提取了职位的唯一 ID 号而不是文本值。是否需要重新格式化 select 查询才能这样做?下面是我的代码,我认为您可以通过添加“.text”将值格式化为文本,但不幸的是,这不起作用。
sql_get = "SELECT [tblContacts].[CompleteName], [tblContacts].[CurrentPosition], [tblContacts].[Level], [tblContacts].[ContractType], [tblContacts].[ID], [tblContacts].[Foto], [tblTeams].[Team], [tblJobTitles].[JobTitle] FROM [tblContacts] INNER JOIN [tblTeams] ON [tblContacts].[Team] = [tblTeams].[ID] LEFT JOIN [tblJobTitles] ON [tblJobTitles].[ID] = [tblContacts].[JobTitle] WHERE [tblTeams].[team] = '" & cboDepartments.Value & "'"
Me.frmstaticdatadepartments08.Form.RecordSource = sql_get
据我了解tblContacts.JobTitle
是一个外键。实际职位位于另一个 table、tblJobTitles
中。获得它的唯一方法是通过 sub-select 或加入另一个 table 来索取它。
SELECT tblContacts.CompleteName, tblContacts.CurrentPosition, tblContacts.Level,
tblContacts.ContractType, tblContacts.ID, tblContacts.Foto,
tblTeams.Team, tblJobTitles.JobTitle
FROM tblContacts
LEFT JOIN tblJobTitles ON tblContacts.JobTitle = tblJobTitles.Id
INNER JOIN tblTeams ON tblContacts.Team = tblTeams.ID
WHERE [tblTeams].[team] = '" & cboDepartments.Value & "'"
我不得不猜测一些列名称,tblJobTitles.Id
和 tblJobTitles.JobTitle
,但我希望你明白我的意思。
我所做的更改是加入 tblJobTitles
然后要求标题而不是参考 ID,tblJobTitles.JobTitle
。
编辑:
显然 Access 需要括号才能进行多个连接 - see msdn:
In cases where you need to join more than one table, you can nest the INNER JOIN clauses.
所以改为这样做:
SELECT tblContacts.CompleteName, tblContacts.CurrentPosition, tblContacts.Level,
tblContacts.ContractType, tblContacts.ID, tblContacts.Foto,
tblTeams.Team, tblJobTitles.JobTitle
FROM (tblContacts
INNER JOIN tblTeams ON tblContacts.Team = tblTeams.ID)
LEFT OUTER JOIN tblJobTitles ON tblContacts.JobTitle = tblJobTitles.Id
WHERE [tblTeams].[team] = '" & cboDepartments.Value & "'"