on 06-06-2011 10:54 PM
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
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
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.
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
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
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.
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.
User | Count |
---|---|
101 | |
12 | |
11 | |
6 | |
6 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.