UNIR CAMPOS NUMA SQL

WEBIER 05/11/2013 23:20:30
#430778
Tenho uma SQL assim:

sSQL = [Ô]SELECT produtos.codigo AS var_codent, produtos.fabricante AS var_fab, produtos.descricao AS var_desc FROM PRODUTOS [Ô]
Set r = dbData.OpenRecordset(sSQL)

ai tenho um relatorio em outro form, onde lá eu defino a propriedade CAMPO de cada objeto com o campo que ele deve exibir, exemplo:

rfDesc.campo = var_desc
rfFab.campo = var_fab
rfCod.campo = var_codent

o problema é que como o campo que é exibido em cada objeto tem q ser definido diretamente na propriedade do objeto...

MINHA DUVIDA é!

como unir 2 campos nessa SQL para exibição num mesmo objeto no relatorio.

Exemplo

rfDesc = var_desc / var_fab

entao queria uma forma de fazer na SQL essa uniao, tipo assim:
[txt-color=#e80000]
sSQL = [Ô]SELECT produtos.codigo AS var_codent, produtos.fabricante AS var_fab, produtos.descricao AS var_desc, (produtos.descricao AS var_desc + produtos.fabricante AS var_fab) AS varDescFab FROM PRODUTOS[Ô]
Set r = dbData.OpenRecordset(sSQL)[/txt-color]

ai no campo rfDesc colocaria CAMPO = varDescFab

Eh possivel unir campos numa SQL?
MADMAX 06/11/2013 09:59:04
#430782
WEBIER

A query em vermelho deve ficar mais ou menos assim .

sSQL = [Ô]SELECT produtos.codigo AS var_codent, produtos.fabricante AS var_fab, produtos.descricao AS var_desc, (produtos.descricao + produtos.fabricante ) AS varDescFab FROM PRODUTOS[Ô]
RO.DRIGOSG 06/11/2013 16:26:50
#430806
Boa tarde WEBIER,

Sua query estava quase certa, bastava apenas retirar o alias (AS ....) dos campos. Se colocar como o MADMAX postou vai funcionar corretamente, mas segue algumas dicas de SQL:

Query

sSQL = [Ô]SELECT codigo AS var_codent, fabricante AS var_fab, descricao AS var_desc,  descricao +  fabricante  AS varDescFab FROM PRODUTOS[Ô]

1 - Quando você colocar em um select apenas uma tabela no FROM, não precisa associar um alias no campo, assim como vc estava fazendo, ex: SELECT produtos.codigo AS var_codent..... apenas coloque o campo assim como coloquei na query acima;

2 - Você pode unir quantos campo quiser em suas querys, mas tome cuidado com o tipo de dados do campo, pois se você tentar unir um campo string com um campo integer por exemplo, não vai dar certo a princípio, e dai você terá que usar um convert para o campo integer;

3 - Na união dos campos não é necessário colocar parenteses ();

4 - No seu sistema tente deixar as querys um pouco mais visível (estruturada) para que seja melhor para dar manutenções posteriormente, ex:

sSQL = [Ô]SELECT [Ô]
sSQL = sSQL & [Ô] CODIGO AS VAR_CODENT[Ô]
sSQL = sSQL & [Ô] ,FABRICANTE AS VAR_FAB[Ô]
sSQL = sSQL & [Ô] ,DESCRICAO AS VAR_DESC[Ô]
sSQL = sSQL & [Ô] ,DESCRICAO + FABRICANTE AS VARDESCFAB[Ô]
sSQL = sSQL & [Ô] FROM[Ô]
sSQL = sSQL & [Ô] PRODUTOS[Ô]


Abs

WEBIER 06/11/2013 20:52:43
#430821
pior que colocando

produtos.desc + produtos.fabricante as VAR_DESCFAB

fica unido na exibição, ou seja

AÇUCAR 1KGCRISTAL

Onde era para ser
AÇUCAR 1KG CRISTAL
ou
AÇUCAR 1KG / CRISTAL

como eu faço?
FFCOUTO 07/11/2013 08:30:29
#430827
Resposta escolhida
Fala Webier,

é simples, basta acrescentar uma sequencia de caracteres normal.

produtos.desc + [ô] / [ô] + produtos.fabricante as VAR_DESCFAB


Tópico encerrado , respostas não são mais permitidas