您好,我从数据库中查询了两个检索地址信息,问题是有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列的数据。
发布评论