2009-12-24 5 views
1

J'ai un tableau des détails de la commande.Ajouter total au groupe

Ce que je veux faire est de créer une requête pour afficher

OrderNumber | SKU | QTY | Price | Line Total | 
1   SKU1 1 10.00  10.00 
1   ---- 0  0.00  10.00 
2   SKU1 2 10.00  20.00 
2   SKU2 3  1.50   4.50 
2   ---- 0  0.00  24.50 

Je veux dire que je dois ajouter une autre ligne pour chaque commande avec montant total pour l'exportation vers un fichier texte. J'ai un SQL Server 2005

Merci.

Répondre

4

La colonne supplémentaire est facile, il suffit de créer une autre colonne de sortie dans le SQL qui est défini comme le produit des deux attributs exsting

Select OrderNumber, SKU, QTY, Price, Qty * Price as LineTotal 
    From Table ... 

La deuxième partie, l'ajout d'un sous-total rangée, peut être fait avec un mot-clé Rollup ou par union avec une requête agrégée

Select OrderNumber, SKU, QTY, Price, 
     Qty * Price as LineTotal 
    From Table 
    Union 
    Select OrderNumber, null SKU, null Qty, null Price, 
     Sum(Qty * Price) as LineTotal 
    From Table 
    Group By OrderNumber 
    Order By OrderNumber, Case When SKU Is Null then 1 Else 0 End 
1

Je ne suis pas sûr si cela tout cela dans un seul SQL est une bonne idée, mais vous pouvez essayer avec un syndicat:

SELECT * 
FROM (
    SELECT ordernumber, sku, qty, price, qty*price line_total 
    FROM order_details 
    UNION 
    SELECT ordernumber, '---' sku, 0 qty, 0 price, SUM(qty*price) 
    FROM order_details 
    GROUP BY ordernumber 
) 
ORDER BY ordernumber, sku 

N'a pas essayé cependant.

Questions connexes