关联同一表中2列的数据。

编程入门 行业动态 更新时间:2024-10-24 14:15:39
本文介绍了关联同一表中2列的数据。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

您好,我从数据库中查询了两个检索地址信息,问题是有2列,'cd_cidade'和'cd_cidade_comercial',它们是表'prestador'中的城市代码。我们有一个名为'cidade'的表,其中'cd_cidade'列为主键,列'nm_cidade'是表中每个代码的名称。 如何从表'cidade'中检索名称以使用它代替'cd_cidade'和'cd_cidade_comercial'。 顺便说一下查询是:

Hello, I made a query two retrieve address information from the database, the problem is that there are 2 columns, 'cd_cidade' and 'cd_cidade_comercial', which are city codes in the table 'prestador'. and we have a table named 'cidade' where have the 'cd_cidade' column as primary key and the column 'nm_cidade' that is the name for each code in the table. How can I retrive the name from table 'cidade' to use it in place of 'cd_cidade' and 'cd_cidade_comercial'. By the way the query is:

SELECT COUNT (a.cd_atendimento), p.cd_prestador, p.nm_prestador, p.ds_endereco, p.nr_endereco, p.ds_bairro, p.ds_complemento, p.nr_cep, p.cd_cidade, p.ds_endereco_comercial, p.nr_endereco_comercial, p.ds_bairro_comercial, p.ds_complemento_comercial, p.ds_cep_comercial, p.cd_cidade_comercial, esp.ds_especialid, decode (p.cd_tip_presta, 1, 'Médico', 2, 'Odontologo') FROM dbamv.prestador p, dbamv.atendime a, dbamv.esp_med e, dbamv.especialid esp WHERE p.cd_prestador = a.cd_prestador AND p.cd_prestador = e.cd_prestador AND e.cd_especialid = esp.cd_especialid AND p.cd_tip_presta in (1,2) AND A.tp_atendimento = 'I' AND A.dt_atendimento between '01/jan/2012' and '31/dez/2012' AND A.dt_alta is not null GROUP BY p.cd_prestador, p.nm_prestador, p.ds_endereco, e.cd_especialid, esp.ds_especialid, p.tp_prestador, p.cd_tip_presta, p.nr_endereco, p.ds_bairro, p.ds_complemento, p.nr_cep, p.cd_cidade, p.ds_endereco_comercial, p.nr_endereco_comercial, p.ds_bairro_comercial, p.ds_complemento_comercial, p.ds_cep_comercial, p.cd_cidade_comercial

谢谢你们。任何问题随时都可以回复。

Thank you all. Any questions feel free to reply.

推荐答案

没有涉及你的查询(可能搞砸了 - 我会把这一点留给你)你需要添加一个加入。如果我们只是得到几个字段: Without wading through your query (and possibly messing it up - I'll leave that bit to you) you need to add a JOIN. If we just get a couple of fields: SELECT p.cd_prestador, c.nm_cidade FROM prestador p JOIN cicade c ON p.cd_cidade=c.cd_cicade

尝试一下,您应该明白我的意思。

Try that and you should see what I mean.

在任何情况下都不应该混合ANSI连接隐式连接。 试试这个: You should in any case not mix ANSI joins with implicit joins. Try this: SELECT COUNT (a.cd_atendimento), p.cd_prestador, p.nm_prestador, p.ds_endereco, p.nr_endereco, p.ds_bairro, p.ds_complemento, p.nr_cep, p.cd_cidade, p.ds_endereco_comercial, p.nr_endereco_comercial, p.ds_bairro_comercial, p.ds_complemento_comercial, p.ds_cep_comercial, p.cd_cidade_comercial, esp.ds_especialid, decode (p.cd_tip_presta, 1, 'Médico', 2, 'Odontologo'), c1.nm_cidade cidade, c2.nm_cidade cidade_comercial FROM dbamv.prestador p, dbamv.atendime a, dbamv.esp_med e, dbamv.especialid esp, cidade c1 cidade c2 WHERE p.cd_prestador = a.cd_prestador AND p.cd_prestador = e.cd_prestador AND e.cd_especialid = esp.cd_especialid AND p.cd_cidade=c1.cd_cidade AND p.cd_cidade_comercial=c2.cd_cidade AND p.cd_tip_presta in (1,2) AND A.tp_atendimento = 'I' AND A.dt_atendimento between '01/jan/2012' and '31/dez/2012' AND A.dt_alta is not null GROUP BY p.cd_prestador, p.nm_prestador, p.ds_endereco, e.cd_especialid, esp.ds_especialid, p.tp_prestador, p.cd_tip_presta, p.nr_endereco, p.ds_bairro, p.ds_complemento, p.nr_cep, p.cd_cidade, p.ds_endereco_comercial, p.nr_endereco_comercial, p.ds_bairro_comercial, p.ds_complemento_comercial, p.ds_cep_comercial, p.cd_cidade_comercial, c1.nm_cidade, c2.nm_cidade

更多推荐

关联同一表中2列的数据。

本文发布于:2023-10-27 00:12:48,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1531754.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数据   一表中

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!