2017-07-18 82 views
0

我有这个奇怪的问题列加入5表组由怪字符:我想通过MS访问SQL在

此连接5台,4台连接到一个(T_Registo)得到一些统计数据与组基本以获得T_Registo表上的值的描述

我相信连接表是好的,但问题是当我添加GROUP BY部分。

结果是所有列这个奇怪的字符,除了:

table result

我已经做了不同的技术查询是这样的:

SELECT DateDiff("n",DataHora_inicio,DataHora_fim) AS tempo_registo, 
T_Registo.Utilizador AS Utilizador, 
T_Origem_Contacto.Nome_contacto, 
T_Origem_Problema.Nome_problema, 
T_Problema_PED.Nome_Problema_PED, 
T_Indicador_resolucao.Resolucao_desc 
FROM (((T_Registo INNER JOIN T_Problema_PED ON T_Registo.Problema_PED_ID = 
    T_Problema_PED.Problema_PED_ID) 
INNER JOIN T_Indicador_resolucao ON T_Registo.Indicador_resolvido = 
    T_Indicador_resolucao.Indicador_resolvido) 
INNER JOIN T_Origem_Problema ON T_Registo.Origem_problema_ID = 
    T_Origem_Problema.Origem_problema_ID) 
INNER JOIN T_Origem_Contacto ON T_Registo.Origem_contacto_ID = 
    T_Origem_Contacto.Origem_contacto_ID 
GROUP BY DateDiff("n",DataHora_inicio,DataHora_fim), Utilizador, 
    Nome_contacto, Nome_problema, 

Nome_Problema_PED, Resolucao_desc; 

也试过....

SELECT DateDiff("n",DataHora_inicio,DataHora_fim) AS tempo_registo, 
T_Registo.Utilizador AS Utilizador, 
T_Origem_Contacto.Nome_contacto, 
T_Origem_Problema.Nome_problema, 
T_Problema_PED.Nome_Problema_PED, 
T_Indicador_resolucao.Resolucao_desc 

from 
T_Registo,T_Problema_PED,T_Indicador_resolucao 
,T_Origem_Problema,T_Origem_Contacto 

where T_Registo.Problema_PED_ID = T_Problema_PED.Problema_PED_ID and 
T_Registo.Indicador_resolvido = T_Indicador_resolucao.Indicador_resolvido 

and T_Registo.Origem_problema_ID = T_Origem_Problema.Origem_problema_ID and 
T_Registo.Origem_contacto_ID = T_Origem_Contacto.Origem_contacto_ID 

GROUP BY DateDiff("n",DataHora_inicio,DataHora_fim), Utilizador, 
Nome_contacto, Nome_problema, 

Nome_Problema_PED, Resolucao_desc 

但结果是一样的。

我有改变的顺序加入,加,减列,但仍是结果是没有好处,甚至认为它似乎有一定的影响,例如

在Nome_contacto似乎是上面的例子列正确,但如果订单改变了Nome_contacto列是错误的,并且Utilizador可以。

只是为了一些奇怪的元素添加进去:-)

能否请你帮忙吗?这很奇怪,我试过了我能记得的所有东西,甚至迁移到SQL Server,这显然可以正常工作。

+1

你介意格式化你的问题,所以它更容易阅读? – Marco

回答

2

1)如果你不使用任何聚合函数,为什么使用GROUP BY

2)最有可能你的描述栏是备忘录/长文本。

https://bytes.com/topic/access/answers/849295-access-getting-chinese-character-unexpectedly-why

原因包括:
一)在对未编制索引的 场连接的查询备注字段您组:
http://allenbrowne.com/bug-18.html

解决方法

以下任何一项将解决bug:

  • 不要按备注字段分组。请在备忘录字段下的合计行中选择第一个。这不仅可以避免该错误,而且执行效率更高,但它还允许JET返回整个备忘录字段,而不是将其截断为255个字符。
  • 索引JOIN中涉及的字段。
  • 或者,正如您所做的那样,将数据类型更改为(短)文本。:)
+0

谢谢André。出于某种原因,当数据库从sql服务器导出时,会出现数据类型备忘录的一些字段。我只需要将其更改为文本....它工作 –

+0

如果答案解决了您的问题,您可以[接受它](http://stackoverflow.com/help/someone-answers),这也标志着问题如解决。 @LuisFerreira – Andre