Hola amigos, tengo el siguiente escenario.
 
tabla  
Código:
 
   movimientos				descripcion
|--------------------------|	|--------------------------|
| id | total | flag | code |	| code |   nombre   | peso |
|--------------------------|	|--------------------------|
| 1  |  10   |  1   |  5   |	| 5    | articulo_1 |  20  |
|--------------------------|	|--------------------------|
| 2  |  20   |  1   |  5   |	| 6    | articulo_2 |  30  |
|--------------------------|	|--------------------------|
| 3  |  10   |  1   |  5   |			
|--------------------------|			 ordenes
| 4  |  40   |  0   |  5   |	|---------------------------------|
| -------------------------|	| id | orden | 	   date    | code |
| 5  |  10   |  1   |  6   |	|--------------------------|------|
|--------------------------|	| 1  |  23   |  2012-10-10 |  5   |
| 6  |  10   |  1   |  6   |	|--------------------------|------|
|--------------------------|	| 2  |  74   |  2011-08-23 |  6   |
| 7  |  10   |  1   |  6   |	|--------------------------|------|
|--------------------------|	
| 8  |  80   |  0   |  6   |
|--------------------------|
  Breve descripcion.
Tabla movimientos: Movimientos de ordenes
Tabla descripcion: Datos de los articulos
Tabla ordenes: la ordenes 
Dentro de movimiento esta con el Flag = 1 los articulos ke se movieron para esa orden identificada por code 
Con flag 0 cantidad de elemtos ke se fueron en esa orden NO es igual a la suma de los articulos para esa orden  
Mi meta es obtener: 
1- Totales sumados cuando sean el mismo Code y el FLAG = 1 en la tabla movimientos
2- Compararlo con el Total cuando sea el mismo Code pero con Flag = 0 multiplicado por el peso en la tabla descripcion
3- Diferencia de la Comparacion 
mi pregunta es: Este query ke he creado es optimo para este escenario a existe una mejor opcion ke me puedan brindar 
Código:
 SELECT 
   D.code AS Codigo_Producto, 
   D.nombre AS Descripcion_Producto,
   D.peso AS Peso_Producto, 
   O.date AS Orden_Fecha, 
   O.orden AS Orden_Codigo,
   SUM(M.total) AS Peso_Movido,
   ( M2.total * D.peso ) AS Peso_Vendido,
   ( M2.total * D.peso ) - SUM( M.total ) Diferencia
FROM
   descripcion D
   INNER JOIN moviminetos M ON D.code = M.code 
   INNER JOIN moviminetos M2 ON D.code = M2.code
   INNER JOIN ordenes O ON M.code = O.code
WHERE
   M.flag = 1
   M2.flag = 0
GROUP BY
   M.code,
   M.flag,
   D.nombre,
   D.peso,
   O.date,
   O.orden
  Este query me devuelve el valor perfecto pero mi duda es si esta linea esta bien construida bajo un concepto optimo 
INNER JOIN moviminetos M ON D.code = M.code 
INNER JOIN moviminetos M2 ON D.code = M2.code 
para poder diferenciar un flag = 1 y el otro = 0 
Muchas Gracias