UNIR CAMPOS NUMA SQL
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?
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?
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[Ô]
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[Ô]
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
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:
Abs
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
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?
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?
Fala Webier,
é simples, basta acrescentar uma sequencia de caracteres normal.
é 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