“La sous-requête a retourné plus de 1 valeur” pour la sous-requête SELECT

Je suis à l'aide de MS SQL Server Management Studio 2008. Je vais avoir un problème avec l'écriture d'une sous-requête. C'est l'ensemble de la requête comme suit:

SELECT DISTINCT 
    FH.ShipDate, AVG(FH.[Dist Freight]) AS [Atlantic Freight Charge], 
    (SELECT DISTINCT [Non-Atlantic Freight Charge]
     FROM 
         (SELECT DISTINCT 
              FH.ShipDate, AVG(FH.[Dist Freight]) AS [Non-Atlantic Freight Charge]
          FROM dbo.vw_FreightHistory AS FH
          WHERE VendorName != 'Atlantic Trucking'
          GROUP BY ShipDate, VendorName) AS [Non-Atlantic Freight Charge])
FROM dbo.vw_FreightHistory as FH
WHERE VendorName = 'Atlantic Trucking'
GROUP BY ShipDate, VendorName
ORDER BY ShipDate

Le problème est venu quand j'ai ajouté que la deuxième sous-requête. La première sous-requête ne retourne pas d'erreurs mais elle a montré que la totalité de la somme moyenne des "Dist Fret" dans chaque ShipDate, plutôt que la moyenne que pour la ShipDate. J'ai écrit le deuxième sous-requête pour essayer de résoudre ça, mais maintenant j'ai cette erreur:

Msg 512, Niveau 16, État 1, Ligne 1
La sous-requête a retourné plus de valeur 1. Ce n'est pas permis lorsque la sous-requête suit =, !=, <, <= , >, >= ou lorsque la sous-requête est utilisée comme une expression.

S'il vous plaît laissez-moi savoir si je me dois de préciser quoi que ce soit.

Pourriez-vous montrer la structure de la table, quelques données et de donner une explication de ce que vous essayez de faire? Comme le point de votre requête. On dirait qu'il pourrait probablement être ré-écrit de façon simple, si nous ne savions ce que vous voulez qu'il fasse.
Pas lié à votre message d'erreur, mais vous avez l'air d'être en manque une parenthèse fermante.
les crochets sont beaux, rien ne manque
[Non-Atlantique Frais de transport] retourner plusieurs résultats. Vous avez construit moyenne par jour, donc si vous extraire de la moyenne pour aujourd'hui et pour demain, votre DISTINCT [Non-Atlantique Frais de transport] renvoie 2 résultat.
c'est une très grande table, mais les attributs que je suis en train d'utiliser sont ShipDate, Nomfournisseur, et Dist Fret. Fondamentalement, ce que je suis en train de faire, c'est montrer une tendance de la moyenne "Dist Fret" coût pour un VendorName et ensuite la moyenne pour tous les autres vendeurs dans une autre colonne. La sortie doit être en trois colonnes: chaque ShipDate, la moyenne des coûts de transport pour le Vendeur à cette date, et la moyenne des coûts de transport pour tous les autres vendeurs.

OriginalL'auteur Martin | 2013-07-19