Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

problema con campos

Estas en el tema de problema con campos en el foro de SQL Server en Foros del Web. Hola buenos dias, estoy intentano hacer una sql con union pero no se como reolver el siguiente problema. Tengo la siguiente consulta: (select distinct sp.cproducto,sp.dproducto,'CLIENTE ...
  #1 (permalink)  
Antiguo 05/08/2010, 05:19
 
Fecha de Ingreso: julio-2009
Mensajes: 60
Antigüedad: 14 años, 9 meses
Puntos: 0
problema con campos

Hola buenos dias, estoy intentano hacer una sql con union pero no se como reolver el siguiente problema.
Tengo la siguiente consulta:
(select distinct sp.cproducto,sp.dproducto,'CLIENTE GENÉRICO'ccliente
from salud_productos_completa sp,pah_espec_porcent_budget j--,pfizer.salud_clientes sc
where sp.cproducto='0503240'
and j.mescon_n ='022009'
UNION
select distinct sp.cproducto,sp.dproducto,to_char(sc.ccliente)ccli ente
from salud_productos_completa sp,pfizer.salud_clientes sc
where sp.cproducto='0503240') v_cliente_producto

Y necesito sacar dos campos de la tabla pfizer.salud_clientes sc, pero sin sacar mas datos de los que me muestra en eta consulta.Los campos son sc.ccliente_div,sc.dcliente_div.
Si realizo la siguiente consulta me devuelve miles de registros que no es lo que quiero y no se como sacarlos:
(select distinct sc.ccliente_div,sc.dcliente_div,sp.cproducto,sp.dp roducto,'CLIENTE GENÉRICO'ccliente
from salud_productos_completa sp,pah_espec_porcent_budget j,pfizer.salud_clientes sc
where sp.cproducto='0503240'
and j.mescon_n ='022009'
UNION
-- ,
select distinct sc.ccliente_div,sc.dcliente_div,sp.cproducto,sp.dp roducto,to_char(sc.ccliente)ccliente
from salud_productos_completa sp,pfizer.salud_clientes sc
where sp.cproducto='0503240')

Ademas de que poner en el union la tabla de pfizer.salud_clientes sc,estaria mal.
Por favor necesitaria ayuda si alguien me puede ayudar lo agradeceria.
  #2 (permalink)  
Antiguo 05/08/2010, 11:02
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: problema con campos

Perdon, pero no entiendo que buscas obtener y cual es el problema
  #3 (permalink)  
Antiguo 05/08/2010, 13:42
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: problema con campos

El problema que yo veo es que las tablas no estan relacionadas.
Cuales son los campos en comun entre las tablas?
Ah, te recomiendo usar JOIN.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #4 (permalink)  
Antiguo 06/08/2010, 01:37
 
Fecha de Ingreso: julio-2009
Mensajes: 60
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: problema con campos

Vamos a ver ya he realizado el join de las tablas sin obtener resultados, el unico campo que se puede relacionar es el cproducto de la tabla salud_producto_completa y de la tabla pah_espec_porcent_budget,pero si pongo el join entre esas tablas no me obtiener un resultado. Con la consulta siguiente he conseguido obtener los productos con los del cliente generico dandome los siguientes:

...............................

1162 0503240 0503240-SYNULOX RTU 6 X 100 ML 390158
1163 0503240 0503240-SYNULOX RTU 6 X 100 ML 390159
1164 0503240 0503240-SYNULOX RTU 6 X 100 ML 390160
1165 0503240 0503240-SYNULOX RTU 6 X 100 ML 390161
1166 0503240 0503240-SYNULOX RTU 6 X 100 ML 390162
1167 0503240 0503240-SYNULOX RTU 6 X 100 ML 390163
1168 0503240 0503240-SYNULOX RTU 6 X 100 ML 390164
1169 0503240 0503240-SYNULOX RTU 6 X 100 ML 390165
1170 0503240 0503240-SYNULOX RTU 6 X 100 ML 390166
1171 0503240 0503240-SYNULOX RTU 6 X 100 ML 390167
1172 0503240 0503240-SYNULOX RTU 6 X 100 ML 390168
1173 0503240 0503240-SYNULOX RTU 6 X 100 ML 390169
1174 0503240 0503240-SYNULOX RTU 6 X 100 ML 390170
1175 0503240 0503240-SYNULOX RTU 6 X 100 ML 390171
1176 0503240 0503240-SYNULOX RTU 6 X 100 ML 390172
1177 0503240 0503240-SYNULOX RTU 6 X 100 ML 390173
1178 0503240 0503240-SYNULOX RTU 6 X 100 ML 390174
1179 0503240 0503240-SYNULOX RTU 6 X 100 ML 390175
1180 0503240 0503240-SYNULOX RTU 6 X 100 ML 390176
1181 0503240 0503240-SYNULOX RTU 6 X 100 ML 390177
1182 0503240 0503240-SYNULOX RTU 6 X 100 ML 390178
1183 0503240 0503240-SYNULOX RTU 6 X 100 ML 390179
1184 0503240 0503240-SYNULOX RTU 6 X 100 ML 390180
1185 0503240 0503240-SYNULOX RTU 6 X 100 ML 390181
1186 0503240 0503240-SYNULOX RTU 6 X 100 ML 390182
1187 0503240 0503240-SYNULOX RTU 6 X 100 ML 390183
1188 0503240 0503240-SYNULOX RTU 6 X 100 ML 390184
1189 0503240 0503240-SYNULOX RTU 6 X 100 ML 390185
1190 0503240 0503240-SYNULOX RTU 6 X 100 ML 390186
1191 0503240 0503240-SYNULOX RTU 6 X 100 ML 390187
1192 0503240 0503240-SYNULOX RTU 6 X 100 ML 390188
1193 0503240 0503240-SYNULOX RTU 6 X 100 ML 390189
1194 0503240 0503240-SYNULOX RTU 6 X 100 ML 390190
1195 0503240 0503240-SYNULOX RTU 6 X 100 ML 390191
1196 0503240 0503240-SYNULOX RTU 6 X 100 ML 390192
1197 0503240 0503240-SYNULOX RTU 6 X 100 ML 390193
1198 0503240 0503240-SYNULOX RTU 6 X 100 ML 390194
1199 0503240 0503240-SYNULOX RTU 6 X 100 ML 390195
1200 0503240 0503240-SYNULOX RTU 6 X 100 ML 390196
1201 0503240 0503240-SYNULOX RTU 6 X 100 ML 390197
1202 0503240 0503240-SYNULOX RTU 6 X 100 ML 390198
1203 0503240 0503240-SYNULOX RTU 6 X 100 ML 390199
1204 0503240 0503240-SYNULOX RTU 6 X 100 ML 390200
1205 0503240 0503240-SYNULOX RTU 6 X 100 ML CLIENTE GENÉRICO

Lo que quiero es poder sacar los campos sc.ccliente_div,sc.dcliente_div de la tabla pfizer.salud_clientes sc pero sin tenerla que poner en el union, dado que si pongo la tabla esa en el union de las dos, me saca 9000 registros y eso no es logico.Por eso estoy a ver si me podeis ayudar, por favor.
  #5 (permalink)  
Antiguo 06/08/2010, 07:37
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: problema con campos

Muestranos el query con los joins.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #6 (permalink)  
Antiguo 09/08/2010, 01:34
 
Fecha de Ingreso: julio-2009
Mensajes: 60
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: problema con campos

A ver el query con el join es el siguiente, solo se pueden relacionar la tabla salud_productos_completa con la pah_espec_porcent_budget .Quedano la consulta como veis a continuacion:

(select distinct sp.cproducto,sp.dproducto,'CLIENTE GENÉRICO'ccliente
from salud_productos_completa sp,pah_espec_porcent_budget j
where sp.cproducto=j.cproducto
and j.mescon_n ='022009'
UNION

select distinct sp.cproducto,sp.dproducto,to_char(sc.ccliente)ccli ente
from salud_productos_completa sp,pfizer.salud_clientes sc
where sp.cproducto='0503240')

Si se ejecuta solo la primera select no me devuleve ningun resultado. SOlo he obtenido resultados con la siguiente consulta:

(select distinct sp.cproducto,sp.dproducto,'CLIENTE GENÉRICO'ccliente
from salud_productos_completa sp,pah_espec_porcent_budget j
where sp.cproducto='0503240'
and j.mescon_n ='022009'
UNION

select distinct sp.cproducto,sp.dproducto,to_char(sc.ccliente)ccli ente
from salud_productos_completa sp,pfizer.salud_clientes sc
where sp.cproducto='0503240')

Solo necesito sacar los campos ccliente_div,dcliente_div de la tabla pfizer.salud_clientes sc, sin tener que utilizar dicha tabla en las dos select.
No encuentro la manera de realizarlo.
Un saludo.
  #7 (permalink)  
Antiguo 09/08/2010, 02:49
 
Fecha de Ingreso: julio-2009
Mensajes: 60
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: problema con campos

dispongo de un campo en una tabla que contiene los valores de la otra tabla, dandome resultado obtenido con join.La sentencia es la siguiente:

select distinct sp.cproducto,sp.dproducto,ccliente-- lo saca de la tabla pah_espec_porcent_budget,'CLIENTE GENÉRICO'ccliente
from salud_productos_completa sp,pah_espec_porcent_budget j
where sp.cmpg=j.cproducto
and sp.cproducto='0503240'
and j.mescon_n ='022009'
UNION

select distinct sp.cproducto,sp.dproducto,to_char(sc.ccliente)ccli ente
from salud_productos_completa sp,pfizer.salud_clientes sc
where sp.cproducto='0503240') v_cliente_producto

Pero sigo sin saber sacar los campos ccliente_div,sc.dcliente_div de la tabla pfizer.salud_clientes sc.Espero que alguien me pueda ayudar con el tema muchas gracias.
  #8 (permalink)  
Antiguo 09/08/2010, 09:51
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: problema con campos

Si tu haces un join por un campo y estas seguro que ese es el campo en comun, y si no te da ningun resultado, entonces te recomiendo hacer un join manual, es decir, tomas un valor de cualquier registro de la columna cproducto y lo buscas en la otra tabla. Repite esta forma hasta hallar el problema.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #9 (permalink)  
Antiguo 10/08/2010, 01:05
 
Fecha de Ingreso: julio-2009
Mensajes: 60
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: problema con campos

Cita:
Iniciado por flaviovich Ver Mensaje
Si tu haces un join por un campo y estas seguro que ese es el campo en comun, y si no te da ningun resultado, entonces te recomiendo hacer un join manual, es decir, tomas un valor de cualquier registro de la columna cproducto y lo buscas en la otra tabla. Repite esta forma hasta hallar el problema.
ya comente en el anterior apartado que consegui hacer un join el cual me daba el resultado.La select es la siguiente:

select distinct sp.cproducto,sp.dproducto,'CLIENTE GENÉRICO'ccliente
from salud_productos_completa sp,pah_espec_porcent_budget j
where sp.cproducto='0503240'
and sp.cmpg=j.cproducto
and j.mescon_n ='022009'
UNION
-- ,sc.ccliente_div,sc.dcliente_div
select distinct sp.cproducto,sp.dproducto,to_char(sc.ccliente)ccli ente
from salud_productos_completa sp,pfizer.salud_clientes sc
where sp.cproducto='0503240'

El problema que tengo desde el principio es que no se como sacar los campos sc.ccliente_div,sc.dcliente_div de la tabla pfizer.salud_clientes sc, sin tener que utilizar la tabla en las dos select, porque asi estaria mal echa.¿Alguien sabe por donde tirar?
  #10 (permalink)  
Antiguo 10/08/2010, 07:53
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: problema con campos

Lo que yo entiendo es que quieres lo siguiente:
Código SQL:
Ver original
  1. SELECT DISTINCT sc.ccliente_div, sc.dcliente_div
  2. FROM pfizer.salud_clientes sc
Si no es eso, entonces explica de otra forma, o mejor con ejemplos: pon un registros de cómo quieres el resultado.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #11 (permalink)  
Antiguo 11/08/2010, 01:42
 
Fecha de Ingreso: julio-2009
Mensajes: 60
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: problema con campos

Algo parecido a eso deberia de ser pero va a ser que no.Lo que intento es que con la select expuesta, sacar los campos a mayores esos que no salen, pero sin utilizar la tabla de salud_clientes en la primera select.No se si me he exlicado.Asi no me vale:

(select distinct sc.ccliente_div,sc.dcliente_div,sp.cproducto,sp.dp roducto,'CLIENTE GENÉRICO'ccliente--,null,null
from salud_productos_completa sp,pah_espec_porcent_budget j,pfizer.salud_clientes sc
where sp.cproducto='0503240'
and sp.cmpg=j.cproducto
and j.mescon_n ='022009'
UNION
-- ,sc.ccliente_div,sc.dcliente_div
select distinct sc.ccliente_div,sc.dcliente_div,sp.cproducto,sp.dp roducto,to_char(sc.ccliente)ccliente--,sc.ccliente_div,sc.dcliente_div
from salud_productos_completa sp,pfizer.salud_clientes sc
where sp.cproducto='0503240') v_cliente_producto

No se como sacar los campos esos sin utilizar la tabla esa en las dos select.Estaria mal realizarlo de esta manera dado que en un UNION es una tonteria.
No se si me habeis entendido.
  #12 (permalink)  
Antiguo 11/08/2010, 08:53
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: problema con campos

Tio que te has fumao? jeje
Como puedes hacer una comparacion sin usar la tabla donde se encuentran los registros en cuestion?
Te reitero, explica con ejemplos. Ya lo dice el dicho: un ejemplo es mejor que mil palabras.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.

Etiquetas: campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:50.