2009-06-26 14 views
0

Betrachten Sie die folgenden Daten:Gesamt mit Auswahlabfrage

Insurance_Comp | 1To30DaysAgeing | 31To60DaysAgeing | 61To90DaysAgeing | TotalVehicles 

============================================================================= 

ABC | 30 | 5 | 20 | 55 

XYZ | 10 | 35 | 5 | 50 

mir die Anzahl der Fahrzeuge Berechnung für bestimmte Gruppe im Alter nach einem Lager # zu diesem Fahrzeug zugeordnet ist. Die Anzahl der Fahrzeuge für eine Gruppe (z. B. 1 bis 30 Tage Alterung) wird mit einer komplexen Abfrage berechnet. Ich habe SP geschrieben, um dieses Ergebnis zu erhalten. Was ich will, ist die Summe der Fahrzeuge zu berechnen, während die gleiche select Abfrage ausgeführt wird. Zur Vereinfachung habe ich Funktionen in SQL erstellt, um die Anzahl der Fahrzeuge für jede Gruppe zu erhalten.

Gerade jetzt ich bin die Abfrage wie folgt aus ...

Select Ins_Comp, dbo.fn_1To30Ageing(...), dbo.fn_31To60Ageing(...), dbo.fn_61To90Ageing(...) from Table Where .... 

ich die Gesamt bin Berechnung mit RowDataBound Ereignisse von Gridview in ASP.NET mit C#. Gibt es eine Möglichkeit, die Summe in der Abfrage selbst zu berechnen? Übrigens möchte ich nicht total als dbo.fn_1To30Ageing (...) + dbo.fn_31To60Ageing (...) + dbo.fn_61To90Ageing, weil das doppelte Verarbeitungszeit erfordert.

+0

Könnten Sie die Ausgabedaten veröffentlichen, die Sie sehen möchten? was macht fn_1to30 ..., fn_31to60 ...? – shahkalpesh

+0

Der Ausgang, den ich wollte, ist oben. Die Funktionen berechnen die Tage im Alter. Die Funktion dbo.fn_1To30Ageeing() berechnet die Anzahl der Tage im Alter zwischen 1 und 30. Ich möchte die letzte Spalte TotalVehicles in der Abfrage selbst berechnen. – IrfanRaza

+0

Es wird einfacher zu verstehen sein, wenn Sie die Eingabedaten und Ausgabedaten eingeben. – shahkalpesh

Antwort

1

Ich bin nicht mit ASP.NET familir, aber wenn es nur SQL Aspekt ist, können Sie sicher Unterabfrage verwenden:

SELECT A, B, C, SUM (A + B + C) ( Select Ins_Comp, dbo.fn_1To30Ageing (...) AS A, dbo.fn_31To60Ageing (...) AS B, dbo.fn_61To90Ageing (...) AS C aus Tabelle Wo .... ) TEMP

+0

Ich denke du hast meine Frage nicht vollständig gelesen. Die Werte von A, B, C werden durch Funktionen berechnet und ich möchte nicht wieder total, indem ich sie anrufe. – IrfanRaza

+0

Hey, einfach dort, deine Frage ist aufgrund fehlender Informationen verwirrend. Die obige Abfrage verwendet nur jede Funktion einmal, wo ist das Problem? – RedFilter

+0

Ja, die Unterabfrage wird nur einmal ausgeführt, nicht zweimal. – bryantsai