Search

Custom Search

Subscribe via email

Enter your email address:

Delivered by FeedBurner

Saturday, October 16, 2010

selecting totals in t-sql using subquery / adding totals in gridview footer

add two bounditems in gv and bind them to the fields selected from the sqldatasource with aggregate values
convert the fields into templatefields

make both fields visible=false

add this:

  Protected Sub GridView1_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.DataBound
        '------testing-------
        Dim tmp_GrandTotal_Total_GV As Label = CType(GridView1.FooterRow.FindControl("GV_LBL_GrandTotal_Total_Daily_Cost"), Label)
        Dim tmp_GT As Label = CType(GridView1.Rows(0).FindControl("label2"), Label)
        tmp_GrandTotal_Total_GV.Text = tmp_GT.Text
make sure you add the t-sql command as describled l
------------
This will not work for a paged gridview with more rows than the maximum per page. It can only show the total for the page. However, if the accumulator variable is only zeroed out in the
!Page.IsPostBack then the totals can accumulate but only based on the pages selected so any value could be created for the total depending on the pages selected. Therefore, there is no way to get a running total in a paged gridview.

add:


Text='<%# Bind("GrandTotal_Total_Daily_Cost") %>'
in the footertemplate
full listing
<asp:TemplateField HeaderText="Total_Daily_Cost" SortExpression="Total_Daily_Cost">
                <EditItemTemplate>
                    <asp:Label ID="Label2" runat="server" Text='<%# Eval("Total_Daily_Cost") %>'></asp:Label>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="GV_LBL_Total_Daily_Cost" runat="server" Text='<%# Bind("Total_Daily_Cost") %>'></asp:Label>
                </ItemTemplate>
                <FooterTemplate>
                    <asp:Label ID="GV_LBL_GrandTotal_Total_Daily_Cost" runat="server" Text='<%# Bind("GrandTotal_Total_Daily_Cost") %>'></asp:Label>
                </FooterTemplate>
            </asp:TemplateField>

use t-sql query to fetch the aggregate:

(SELECT SUM(ISNULL(Daily_Cost_Per_Person, 0) * ISNULL((ISNULL(No_of_Bene_Female, 0) + ISNULL(No_of_Bene_Male, 0)), 0)) As 'Total_Daily_Cost' FROM Data)
Full e.g:
SELECT
        CONVERT(VARCHAR, (CASE WHEN Autokey IS NULL THEN (SELECT TOP 1 '' AS Autokey FROM Data) ELSE Autokey END), 1) AS Autokey,
        CONVERT(VARCHAR,     (CASE     WHEN Province IS NULL THEN     (SELECT TOP 1 '' AS Province FROM Data)     ELSE Province    END), 1) AS Province,           
        CONVERT(VARCHAR,     (CASE     WHEN District IS NULL THEN     (SELECT TOP 1 '' AS District FROM Data)     ELSE District    END), 1) AS District,       
        CONVERT(VARCHAR,     (CASE     WHEN Hospital IS NULL THEN     (SELECT TOP 1 '' AS Hospital FROM Data)     ELSE Hospital    END), 1) AS Hospital,     
        CONVERT(VARCHAR,     (CASE     WHEN Caterer_Name IS NULL THEN     (SELECT TOP 1 '' AS Caterer_Name FROM Data)     ELSE Caterer_Name    END), 1) AS Caterer_Name,           
        CONVERT(CHAR(11),     (CASE     WHEN Date_of_Entry IS NULL THEN     (SELECT TOP 1 '' AS Date_of_Entry FROM Data)     ELSE Date_of_Entry    END), 106) AS Date_of_Entry,                   
        LEFT((CASE     WHEN Date_of_Entry = '01 Jan 1900' THEN     (SELECT TOP 1 '' AS Date_of_Entry FROM Data)     ELSE DATENAME(WEEKDAY, Date_of_Entry)    END), 3) AS Week,       
        CONVERT(VARCHAR,     (CASE     WHEN No_of_Daigs IS NULL THEN     (SELECT TOP 1 '' AS No_of_Daigs FROM Data)          ELSE No_of_Daigs    END), 1) AS No_of_Daigs,     
        CONVERT(VARCHAR,     (CASE     WHEN Food_Item IS NULL THEN     (SELECT TOP 1 '' AS Food_Item FROM Data)     ELSE Food_Item    END), 1) AS Food_Item,             
        CONVERT(VARCHAR,     (CASE     WHEN No_of_Rotis IS NULL THEN     (SELECT TOP 1 '' AS No_of_Rotis FROM Data)     ELSE No_of_Rotis    END), 1) AS No_of_Rotis,                     
        CONVERT(VARCHAR,     (CASE     WHEN No_of_Bene_Male IS NULL THEN     (SELECT TOP 1 '' AS No_of_Bene_Male FROM Data)     ELSE No_of_Bene_Male    END), 1) AS No_of_Bene_Male,                     
        CONVERT(VARCHAR,     (CASE     WHEN No_of_Bene_Female IS NULL THEN     (SELECT TOP 1 '' AS No_of_Bene_Female FROM Data)     ELSE No_of_Bene_Female    END), 1) AS No_of_Bene_Female,     
        CONVERT(VARCHAR,     (CASE     WHEN Daily_Cost_Per_Person IS NULL THEN     (SELECT TOP 1 '' AS Daily_Cost_Per_Person FROM Data)     ELSE Daily_Cost_Per_Person     END), 1) AS Daily_Cost_Per_Person,
        CONVERT(VARCHAR,     (CASE     WHEN Daily_Cost_Per_Person IS NULL THEN     (SELECT TOP 1 '' AS Daily_Cost_Per_Person FROM Data)     ELSE Daily_Cost_Per_Person     END), 1) AS Daily_Cost_Per_Person,
        ISNULL(No_of_Bene_Female, 0) + ISNULL(No_of_Bene_Male, 0) AS 'Total Bene',
        ISNULL(Daily_Cost_Per_Person, 0) * ISNULL((ISNULL(No_of_Bene_Female, 0) + ISNULL(No_of_Bene_Male, 0)), 0) As 'Total_Daily_Cost',
        (SELECT SUM(ISNULL(Daily_Cost_Per_Person, 0) * ISNULL((ISNULL(No_of_Bene_Female, 0) + ISNULL(No_of_Bene_Male, 0)), 0)) As 'Total_Daily_Cost' FROM Data)
        FROM Data

---
make sure to change forecolor of textbox to white if the background of page is black.

No comments:

Post a Comment

Labels

.ico (1) acunetix (1) adding controls dynamically (1) adding list item programatically (1) adding parameters (1) aligning (2) aligning buttons (1) and Bind() can only be used in the context (1) anonymous access (1) appending static dropdownlist items (1) asciibetical sort (1) asp.net (101) assembly (1) asterisk (1) auto increment (1) autopostback (1) autosize (1) aztech (5) behavior (1) boundfield (1) browser tab icon (1) busybox (1) bypass proxy (1) calculate totals in reportviewer (2) cangrow (1) cascading style sheets (1) case (1) CDbl (1) changemode (1) checkbox (1) columns (1) comments (1) comparing all values (1) comparing integer values (2) comparison (2) conditional IIF (1) confirmation box on delete (1) connection string (1) control (1) controlID (1) controlparameter (1) convert (1) convert format of currency or float or 0.0000 to 0.00 (1) convert image to pixels (1) converting dates (2) css (1) ctype (1) culture (1) currency (1) current date (1) current ports (1) data typeconversion (1) database (2) databind (1) databound (5) dataformatstring (1) date column (1) date format (3) date sort in gridview (1) db_datareader (1) db_datawriter (1) dd MMM yyyy (1) defaultmode (1) delete button (1) deleting (1) deleting rows (1) deploying website to IIS (3) deployment error (1) deployment to IIS (4) detecting formview move (3) difference between filterexpression and selectexpression (2) difference between publish and build in visual studio (1) directory security (1) display error on no data in reportviewer (2) distinct (1) DLL (1) DMZ (1) double value (1) double quotes in javascript (1) download reportviewer (5) download visual web developer (3) drill down (1) drilldown (1) drilldown dropdownlist (1) dropdownlist (4) dropdownlist showing double values on postback (2) DSL 605EU (5) dynamic DNS (1) dyndns (1) e.values (1) edit mode (1) embedded images (1) emptydatatemplate (1) enableclientscript (1) enableviewstate (1) error during selection in filter of non matching values (1) Eval() (1) event manager (1) excel to sql server (2) executiontime (1) expression (2) F5 key refresh (1) failed to load viewstate (1) favicon (1) favicon.ico (1) feedback (1) feedback module (1) field expression (1) file permissions (1) filter (3) filterexpression (2) filterparameters (1) findcontrol (1) firefox (1) firefox password problem (1) firewall (1) float (1) focus (1) font (1) footerrow (1) format currency (1) formatting date in reportviewer (1) formview (11) formviewmode (2) freeze screen (1) global ip (2) globals (1) gotreportviewer (1) grand total (1) gridview (18) gridview labels (3) handling dates (6) handling nulls (5) html (1) htmlencode (1) httphandler (1) icon in address bar (1) icon in browser (1) IIS (6) IIS 5 (2) IIS 7 (1) IIS admin tool (1) IIS error (1) iis installation (1) IIS manager (3) IIS personalization (1) IIS pool (3) IIS setup (1) IIS Unexpected error 0x8ffe2740 (1) image control (1) image sizing in reportviewer (1) importing html into excel (1) index was out of range (1) insert (4) insert image in reportviewer (1) inserting (1) insertparameters (1) integer (1) integer column (2) intellisense (1) iteminserted (1) iteminserting (2) itemupdating (2) javascript (6) javascript and smartnavigation (1) javascript intellisense (1) label (1) left align pagerstyle (1) listitem (1) live ip (2) load (1) maintain cursor on field after postback (1) maintainscrollbackposition (2) managing deletion (1) microsoft (2) modechanged (1) modechanging (1) money column (1) money field (1) monitor IIS errors (1) monitoring ports (1) ms excel (1) ms word (1) multiple values shown (1) natural sort (1) network service (3) newline character in reportviewer textbox (1) newmode (1) nirsoft (1) no data (1) non focus (1) non null (1) norows property (1) obfuscate (1) obfuscator (1) objectdatasource (3) onclientclick (1) onfocus (3) onkeyup (1) page expiry (1) page margins (1) page_load (1) pageindex (1) panel (1) parameterized query (1) pdf (1) permissions (2) port forwarding (2) port scanner (1) ports (2) postback losing focus problem (1) pre-compile tasks visual studio (1) prevent insert on refresh (1) prevent multiple records being added (1) preventing doubleclick (1) preventing multiple clicks (1) primary key (1) primary key column (1) profile (2) programming (1) protect asp.net code (2) publickeytoken (1) publish to DLL (2) publish website (2) putting blanks in formview (1) reboot router (1) referencing values of selectcommand (1) register asp.net (1) registerstartupscript (2) remove focus (1) removing a textbox (2) report header (1) reportaddin.msi (2) reporting services (3) reportviewer (11) reportviewer formatting A4 size PDF (1) reportviewer formatting for A4 size PDF (1) reportviewer header scroll problem (1) reportviewer showing header (1) reportviewer showing header constantly (1) reset autokeys (1) restart router (1) router (6) router interface (1) rows (1) schema (1) scriptmanager (1) scroll function (1) scroll to window location with javascript (1) scrolling scrollbar with javascript (1) selectcommand (1) selectedindexchanged (1) selectedrowstyle (1) selectedvalue (1) selectexpression (1) selecting control inside gridview (1) selecting null as 0 (1) selecting null as zero (1) selecting nulls (3) selecting row (1) selecting totals in t-sql using subquery (2) selecting week (1) server application unavailable (1) session state (2) session timeout (1) set focus on control on page load (1) setting tab order of controls (1) setup firewall (1) showtime (2) single quotes in javascript (1) sizing property (1) skype port 80 conflict (1) smartnavigation (3) smartnavigation errors (1) smartnavigation problems (2) smartnavigation solutions (1) sorting (1) sql server (47) sqldatasource (9) SSRS (5) start primary key column from 1 (1) static ip (1) string value (1) stylesheet (1) subquery (2) summary (1) system.web (1) t-sql (22) tab index (2) tab order (2) table (1) table of contents (1) table wrap (1) tables (1) tcp port (1) TD (1) telnet (1) templatefields (2) ternary IIF operator (2) textbox (4) textchanged (1) timeout (1) top row (1) totals in gridview footer (2) TR-068 WAN Access (1) trimming values (1) truncate table (1) try catch block (1) updating (1) validation (1) validationsummary (1) vb (76) version (1) viewstate (1) viewstate error (1) virtual directory (1) visiblefalse (1) visual studio 2008 (4) visual web developer (5) visual web developer 2005 (3) vwd (2) watch activity (1) watermark (1) web tunnel proxy (1) web.config (4) webforms (1) webserver (1) Website Vulnerabilities (1) where clause (1) windows CD (1) windows server (3) windows vista (2) windows xp (1) wrap line (2) wrapping text in reportviewer textbox (1) xp (2) XPath() (1)