cancel
Showing results for 
Search instead for 
Did you mean: 

Ayuda en query

Former Member
0 Kudos

Jovenes, solicito su ayuda, me solicitaron un reporte de socios de negocio en donde se refleje las personas de contacto, en el caso de la empresa que me lo esta pidiendo hay hasta 4 personas de contacto. Y ellos necesiten que se ven estas 4 personas con sus datos respectivos.

Espero me haya dado a entender.

De antemano muy agradecido por su ayuda.

Saludos

Accepted Solutions (1)

Accepted Solutions (1)

felipe_loyolarodriguez
Active Contributor
0 Kudos

Prueba con esto


SELECT T0.[Name], T0.[Position], T0.[Address], T0.[Tel1], T0.[Tel2], T0.[Cellolar], T0.[Fax], T0.[E_MailL], T0.[Pager], T0.[Notes1], T0.[Notes2], T0.[Password], T0.[BirthPlace], T0.[BirthDate], T0.[Gender], T0.[Profession], T0.[Title], T0.[BirthCity] 
FROM OCPR T0 
WHERE T0.[CardCode] = '[%0]'

Slds

Edited by: Floyola on Jun 6, 2011 6:05 PM

Former Member
0 Kudos

Gracias Floyola pero necesito agregar otros datos de Oportunidad de venta

el query lo tengo de esta forma.


SELECT T1.[U_Escrit], T1.[U_Fecert], T1.[U_Abogado], T3.[FirstName],  T3.[U_Edad], 
	  (Case when T0.[U_Ecivil] = '1' then 'Soltero' else 'Casado' end) as 'Estado Civil', 
	  T3.[Profession], T0.[U_Nit], T0.[U_Dpi], T3.[U_Extend], T3.[U_Nacional] 
FROM OCRD T0  INNER JOIN OOPR T1 ON T0.CardCode = T1.CardCode 
			  INNER JOIN OINV T2 ON T0.CardCode = T2.CardCode 
			  INNER JOIN OCPR T3 ON T1.CprCode = T3.CntctCode 
WHERE T1.[U_Escrit] = '103' 
GROUP BY T1.[U_Escrit], T1.[U_Fecert], T1.[U_Abogado], T3.[FirstName],  
		 T3.[U_Edad], T0.[U_Ecivil], T3.[Profession], T0.[U_Nit], T0.[U_Dpi], 
		 T3.[U_Extend], T3.[U_Nacional]

pero este query solo me muestra una persona de contacto, como puedo adicionar una segunda, terecera, o cuarta.

De antemano muy agradecido por la ayuda.

felipe_loyolarodriguez
Active Contributor
0 Kudos

Pruebalo asi


SELECT T1.[U_Escrit], T1.[U_Fecert], T1.[U_Abogado], T3.[FirstName],  T3.[U_Edad],
CASE T0.[U_Ecivil]
WHEN '1' THEN 'Soltero' 
ELSE 'Casado' 
END 'Estado Civil',
T3.[Profession], T0.[U_Nit], T0.[U_Dpi], T3.[U_Extend], T3.[U_Nacional] 
FROM OOPR T1  
INNER JOIN OCRD T0 ON T0.CardCode = T1.CardCode 
INNER JOIN OCPR T3 ON T1.CprCode = T3.CntctCode AND T0.CardCode = T3.CardCode
WHERE T1.[U_Escrit] = '103' 
GROUP BY T1.[U_Escrit], T1.[U_Fecert], T1.[U_Abogado], T3.[FirstName], T3.[U_Edad], T0.[U_Ecivil], 
T3.[Profession], T0.[U_Nit], T0.[U_Dpi], T3.[U_Extend], T3.[U_Nacional]

Slds

Former Member
0 Kudos

Gracias Floyola pero me sigue apareciendo solo una persona de contacto y el socio de negocio tiene asignado dos personas de contacto, la pregunta seria como seria para que apareciera la otra persona de contacto. Disculpa las molestias.

Te agradezco tu ayuda.

agustin_marcoscividanes
Active Contributor
0 Kudos

Hola

yo lo haría con cursores. Más o menos así:

DECLARE @cardcode AS char(15)

DECLARE C_Clientes CURSOR FOR

SELECT cardcode FROM OCRD WHERE CardType = 'C' and cardcode =

(SELECT cardcode FROM OOPR WHERE opendate between '20090101' and '20110601')

OPEN C_Clientes FETCH NEXT FROM C_Clientes INTO @cardcode

WHILE @@FETCH_STATUS = 0

BEGIN

DECLARE C_Contactos CURSOR FOR

SELECT * FROM OCPR WHERE CardCode = @cardcode ORDER BY CardCode

OPEN C_Contactos FETCH NEXT FROM C_Contactos

WHILE @@FETCH_STATUS = 0

BEGIN

FETCH NEXT FROM C_Contactos

END

FETCH NEXT FROM C_Clientes INTO @cardcode

CLOSE C_Contactos

DEALLOCATE C_Contactos

END

CLOSE C_Clientes

DEALLOCATE C_Clientes

Añade los campos que quieras obtener de cada tabla y las condiciones en los WHERE.

Un saludo.

Agustín.

Former Member
0 Kudos

Gracias Agustin la verdad no he utilizado esta metodo de cursoresen sql pero lo voy aprobar de la forma que me indicas.

Saludos y gracias por la ayuda.

Former Member
0 Kudos

Estimado yo hice la prueba y funciona de esta forma

SELECT T0.CardCode, T0.CardName, T2.[Name],  T2.[Profession] 
FROM OCRD T0 
INNER JOIN OCPR T2 ON T2.CardCode = T0.CardCode

Si queres que te salgan aquellos registros que no tengan ninguna persona de contacto poder hacer con un LEFT OUTER JOIN o RIGHT OUTER JOIN segun sea el caso

creo que esto te dara los datos basicos luego podes ir agregando campos o tablas relacionadas..

espero te sirva...

Saludos

Rodolfo Castañeda

Former Member
0 Kudos

Favor de revisar este Query lo hice en funcion de prueba en la base de datos Demo que trae el producto

SELECT T0.CardCode, T0.CardName, T2.[Name] as 'Persona de Contacto',  T3.OpprId,T3.SlpCode,OpenDate,Status
FROM OCRD T0 
INNER JOIN OCPR T2 ON T2.CardCode = T0.CardCode
INNER JOIN OOPR T3 ON T2.CardCode = T3.CardCode

Saludos

Rodolfo Castañeda

Former Member
0 Kudos

Prueba lo siguiente.

Que es una alteración a la consulta que mando Floyola.

SELECT T1.[U_Escrit], T1.[U_Fecert], T1.[U_Abogado], T3.[FirstName],  T3.[U_Edad],
CASE T0.[U_Ecivil]
WHEN '1' THEN 'Soltero' 
ELSE 'Casado' 
END 'Estado Civil',
T3.[Profession], T0.[U_Nit], T0.[U_Dpi], T3.[U_Extend], T3.[U_Nacional] 
FROM OOPR T1  
INNER JOIN OCRD T0 ON T0.CardCode = T1.CardCode 
LEFT OUTER JOIN OCPR T3 ON T1.CprCode = T3.CntctCode AND T0.CardCode = T3.CardCode
WHERE T1.[U_Escrit] = '103' 
GROUP BY T1.[U_Escrit], T1.[U_Fecert], T1.[U_Abogado], T3.[FirstName], T3.[U_Edad]
, T0.[U_Ecivil], T3.[Profession], T0.[U_Nit], T0.[U_Dpi], T3.[U_Extend], T3.[U_Nacional]

Para que se entienda, el cambio que hice fue decirle que me muestre todos los contactos del SN, aún cuando estos no tengan registros en las oportunidades de venta.

slds.

Former Member
0 Kudos

Gracias Rodolfo es exactamente lo que necesitaba, excelente te estoy muy agradecido por tu ayuda y a todos los demas se los agradezco tambien.

Saludos

Former Member
0 Kudos

Perez, cuidado con el tema porque lo que entrega la consulta de Rodolfo, son todos los contactos de SN, que tengan alguna actividad en la oportunidad de ventas.

Pero eso no te asegura que esa determinada oportunidad de venta se lleve acabo con ese contacto. Es más si tuvieras varias oportunidades abiertas con un mismo SN y diferentes contactos, el resultado de la consulta seria multiplicar los contactos*Numero de oportunidades.

La consulta que te mande y que primero fabrico Floyola, se enlaza a la oportunidad de venta tanto con el SN como con el Contacto de este.

slds.

Answers (0)