Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/04/2005, 00:49
Avatar de ProgramadorMax
ProgramadorMax
 
Fecha de Ingreso: diciembre-2003
Ubicación: Ciudad de Mexico.
Mensajes: 47
Antigüedad: 20 años, 3 meses
Puntos: 0
Pregunta Consultas con LEFT JOIN ON

Hola a todos, mi problema es algo simple, pero complicado. Tengo que realizar un reporte de ventas con las siguientes tablas y campos.


Tabla: asesores : AsesorId,Nombre,ApellidoP,ApellidoM
Tabla: cliente : ClienteId, Nombre,ApellidoP,ApellidoM
Tabla: depto: DeptoId,Clave,Status,PrecioVenta,PrecioFinal
Tabla: grupo: GrupoId,Nombre

Este reporte debe mostrar el asesor y los nombres de los clientes a los cuales les ha vendido el departamento (Status- Vendido):



Dep Nombre Fecha Precio Venta Precio Final

Marcos Lopez Fierro

202 Martinez Nasar Rosa 24.Oct.2003 420,050.00 430,030.00

Carlos Almara Velasco
501 Pedro Perez Perez 24.Oct.2003 420,050.00 430,030.00
304 Gerardo Portales Cabaña 24.Oct.2003 420,050.00 430,030.00

Mi problema radica, en que no tengo mucha experiencia relacionando tablas y se me complica hacer un reporte de estas caracteristicas.

Mi codigo es el siguiente, haber si alguno me puede ayudar, por que la verdad no me llega la respuesta.

include ('connBienes.php');


Código PHP:
$resultado mysql_query("SELECT asesor.Nombres,asesor.ApellidoP,asesor.ApellidoM,cliente.Nombres,cliente.ApellidoP,cliente.ApellidoM,grupo.Nombre,depto.Clave,depto.Status
    FROM asesor,depto
    LEFT JOIN cliente ON asesor.AsesorId = cliente.AsesorId
    LEFT JOIN grupo ON depto.GrupoId = grupo.GrupoId
    WHERE depto.Status = 'Vendido'"
) or die(mysql_error()); 


echo 
"<table align=center border=2>";
while (
$fila mysql_fetch_assoc($resultado)) {
    echo 
"<tr>";
    foreach(
$fila as $clave) {
        echo 
"<td>"$clave"</td>";
    } 

echo 
"</table>"
Como se observa mi ignorancia se basa en los LEFT JOIN ON, asi como para imprimir los campos que deseo de esta forma como si fuera array .

Código PHP:
echo $fila ['asesor.Nombres'].$fila ['asesor.ApellidoP'].$fila ['asesor.ApellidoM']; 
Si utiliso el conocido AS, se me complica la cosa, para estar asignando a cada campo su nombre e imprimirlo en pantalla .

Código PHP:
$resultado mysql_query("SELECT asesor.Nombres AS AsesorN,asesor.ApellidoP AS AsesorP,asesor.ApellidoMAS AsesorM,cliente.Nombres AS ClienteN,cliente.ApellidoP AS ClienteP,cliente.ApellidoM AS ClienteM,grupo.Nombre,depto.Clave,depto.Status
    FROM asesor,depto
    LEFT JOIN cliente ON asesor.AsesorId = cliente.AsesorId
    LEFT JOIN grupo ON depto.GrupoId = grupo.GrupoId
    WHERE depto.Status = 'Vendido'"
) or die(mysql_error()); 

echo 
$fila ['AsesorN'].$fila ['AsesorP'].$fila ['AsesorM']; 
Y para terminar, tampoco me doy idea de como generar esto :

Asesor
Cliente
Cliente
Cliente
Asesor
cliente
Asesor
cliente
cliente

El conocido while no me salva, por que no me doy idea .

Código PHP:
while () {
asesor   
while () {
cliente   




En fin, agradeceria mucho pudieran orientarme, por que soy de los que aprenden autodidacticamente, pero cuando no hay trucos bajo la manga y no se tiene experiencia, pues solo queda la frustracion.

Gracias por adelantado.
__________________
Tonto es aquel que tiene el conocimiento y no sabe como usarlo...
Solo destripando creo mostruos de soluciones.