Voici ma requête en cours:Je dois améliorer ma requête T-SQL afin que je puisse retourner la somme des colonnes
SELECT patron_name,
producer.federal_number,
hst_number,
average_bf_test,
(SELECT MAX(s.statement_number) FROM statement s) AS statement_number,
(SELECT MAX(s.period_ending) FROM statement s) AS period_ending
FROM producer
JOIN producer_details ON producer.federal_number = producer_details.federal_number
JOIN statement ON producer.patron_number = statement.patron_number
WHERE producer.patron_number = @PatronNo
je dois l'améliorer afin que je puisse récupérer la somme des colonnes d'argent dans ma table 'paiement':
quota_payment (money)
total_deductions (money)
net_cheque_or_direct_deposit (money)
interim_payment (money)
final_payment (money)
statement_number (int) (FK) (statement_number is the primary key in the statement table)
Comme par @ la demande de Quassnoi, voici des exemples de données et @ la sortie de la requête de Quassnoi:
producer Table:
patron_number patron_name federal_number
20109 A. Beaton 44373
producer_details Table:
federal_number hst_number average_bf_test
44373 R999999999 0.0392
statement Table:
statement_number period_ending description amount_shipped patron_number
386 2009/07/30 Quota Milk Shipped 32.91 20109
387 2009/11/30 Quota Milk Shipped 22.34 20109
payment Table:
quota_payment total_deductions net_cheque_or_direct_deposit interim_payment
22872.5800 7526.6500 15345.9300 6520.7000
18474.3400 4563.2300 13911.1100 3220.3000
final_payment statement_number
8825.2300 386
10690.8100 387
Ce sont les données renvoyées par la requête @ Quassnoi (à l'origine, la deuxième ligne était NULL pour les colonnes money, mais il s'avère que c'était parce qu'il n'y avait qu'une seule ligne dans la table de paiement à ce moment-là, mais j'ai depuis ajouté une ligne supplémentaire):
patron_name federal_number hst_number average_bf_test
A. Beaton 44373 R999999999 0.0392
A. Beaton 44373 R999999999 0.0392
statement_number period_ending quota_payment total_deductions
387 2009/11/30 22872.5800 7526.6500
387 2009/11/30 18474.3400 4563.2300
net_cheque_or_direct_deposit interim_payment final_payment
15345.9300 6520.7000 8825.2300
13911.1100 3220.3000 10690.8100
Voici le recordset souhaité:
patron_name federal_number hst_number average_bf_test
A. Beaton 44373 R999999999 0.0392
statement_number period_ending quota_payment total_deductions
387 2009/11/30 41346.92 12089.88
net_cheque_or_direct_deposit interim_payment final_payment
29257.04 9741.00 19516.04
J'ai oublié de mentionner que les valeurs de somme pour les colonnes d'argent devraient être « l'année à ce jour » les valeurs (ce qui signifie des valeurs de l'année précédente ne seraient pas inclus dans les résultats de SUM), ce qui le rend un peu plus compliqué.
J'ai besoin de chaque colonne monétaire de la table de paiement pour rester une colonne séparée dans les résultats renvoyés, mais la requête doit renvoyer la somme de toutes les lignes pour chaque colonne. – brookmarker
Je pense que ma réponse fait ce que vous voulez, cependant, votre requête originale fait-elle ce que vous voulez? Il semble que vous vouliez des informations sur @PatronNo mais lorsque vous obtenez l'instruction MAX, vous obtiendrez l'instruction Max à partir de n'importe quel patron_nombre. Je ne suis pas sûr si c'est ce que vous voulez ou non, ou peut-être que je ne comprends pas vous interrogez correctement. – kralco626
Oui, ma requête d'origine fait ce que je veux. J'ai besoin de récupérer le nombre de déclaration max et la période de paiement – brookmarker