Requête SQL remplacer l'UNION de TOUS avec des JOINTURES ou quelque chose

Maintenant, j'ai 3 tables

Commandes:

ID | Date | Machine | Planification

GoodPieces:

ID | Date | Machine | Pièces | Produit

BadPieces:

ID | Date | Machine | Pièces | Produit | Composant

La sortie de la requête est

Date | Machine | Planification | GoodPieces | BadPieces

La requête réelle est quelque chose comme ça:

SELECT
  data.Date AS Date,
  data.Machine AS Machine,
  SUM(CASE WHEN data.type = 'Planning' THEN data.value END ) AS Planning,
  SUM(CASE WHEN data.type = 'GoodPieces' THEN data.value END ) AS GoodPieces,
  SUM(CASE WHEN data.type = 'BadPieces' THEN data.value END ) AS BadPieces
FROM
      ( SELECT
          'Planning' AS Type,
          Date AS Date,
          Machine AS Machine,
          Planning AS Value
        FROM Orders
        UNION ALL
        SELECT
          'GoodPieces',
          Date,
          Machine,
          Pieces AS Value
        FROM GoodPieces
        UNION ALL
        SELECT
          'BadPieces'
          Date,
          Machine,
          Pieces AS Value
        FROM BadPieces ) AS data
GROUP BY
   Date,
   Machine

Ma question est si il y a un moyen d'obtenir le même résultat avec cette 3 tables

Commandes:

ID | Date | Machine| Planification

GoodPieces:

N ° De Commande | Pièces | Produit

BadPieces:

N ° De Commande | Pièces | Produit | Composant

Merci,

InformationsquelleAutor leinho | 2012-04-14