For the past two hours I've been looking for a solution to my problem. Any help is appreciated. Basically, I need to know the T-SQL Command(s) that create subtotals and grandtotals within a set of results. I am designing a school transcript generator and I need to calculate the GPA and Credit Hour Totals per Semester, For Example:
Semester 1 Record
Semester 1 Record
Semester 1 Record
Semester 1 Record
Semester 1 Record
Semester 1 Subtotal
Semester 2 Record
Semester 2 Record
Semester 2 Record
Semester 2 Record
Semester 2 Record
Semester 2 Subtotal
Semester 3 Record
Semester 3 Record
Semester 3 Record
Semester 3 Record
Semester 3 Record
Semester 3 Subtotal
Year 1 Grand Total
I am trying to achieve something as above. Basically, the Months subtotals are represented by A and B. Then (X-A) and (X-A-B) are also the subtotals at the same group level as A and B but don't simply display the total for respective years 2007 and 2008, instead those are remaning totals from X. In order to calculate the remaining totals however, one need to consider the subtotal in previous group. For example, for 2007 its X-A, but for 2008 its X-A-B. I would like to know if this can be achieved using Matrix control. If so, what would be the steps?
I am currently having this problem with gridview and detailview. When I drag either onto the page and set my select statement to pick from one table and then update that data through the gridview (lets say), the update works perfectly. My problem is that the table I am pulling data from is mainly foreign keys. So in order to hide the number values of the foreign keys, I select the string value columns from the tables that contain the primary keys. I then use INNER JOIN in my SELECT so that I only get the data that pertains to the user I am looking to list and edit. I run the "test query" and everything I need shows up as I want it. I then go back to the gridview and change the fields which are foreign keys to templates. When I edit the templates I bind the field that contains the string value of the given foreign key to the template. This works great, because now the user will see string representation instead of the ID numbers that coinside with the string value. So I run my webpage and everything show up as I want it to, all the data is correct and I get no errors. I then click edit (as I have checked the "enable editing" box) and the gridview changes to edit mode. I make my changes and then select "update." When the page refreshes, and the gridview returns, the data is not updated and the original data is shown. I am sorry for so much typing, but I want to be as clear as possible with what I am doing. The only thing I can see being the issue is that when I setup my SELECT and FROM to contain fields from multiple tables, the UPDATE then does not work. When I remove all of my JOIN's and go back to foreign keys and one table the update works again. Below is what I have for my SQL statements:------------------------------------------------------------------------------------------------------------------------------------- SELECT:SELECT People.FirstName, People.LastName, People.FullName, People.PropertyID, People.InviteTypeID, People.RSVP, People.Wheelchair, Property.[House/Day Hab], InviteType.InviteTypeName FROM (InviteType INNER JOIN (Property INNER JOIN People ON Property.PropertyID = People.PropertyID) ON InviteType.InviteTypeID = People.InviteTypeID) WHERE (People.PersonID = ?)UPDATE:UPDATE [People] SET [FirstName] = ?, [LastName] = ?, [FullName] = ?, [PropertyID] = ?, [InviteTypeID] = ?, [RSVP] = ?, [Wheelchair] = ? WHERE [PersonID] = ? ---------------------------------------------------------------------------------------------------------------------------------------The only fields I want to update are in [People]. My WHERE is based on a control that I use to select a person from a drop down list. If I run the test query for the update while setting up my data source the query will update the record in the database. It is when I try to make the update from the gridview that the data is not changed. If anything is not clear please let me know and I will clarify as much as I can. This is my first project using ASP and working with databases so I am completely learning as I go. I took some database courses in college but I have never interacted with them with a web based front end. Any help will be greatly appreciated.Thank you in advance for any time, help, and/or advice you can give.Brian
Ok I have a query "SELECT ColumnNames FROM tbl1" let's say the values returned are "age,sex,race".
Now I want to be able to create an "update" statement like "UPATE tbl2 SET Col2 = age + sex + race" dynamically and execute this UPDATE statement. So, if the next select statement returns "age, sex, race, gender" then the script should create "UPDATE tbl2 SET Col2 = age + sex + race + gender" and execute it.
hiI need to write a stored procedure that takes input parameters,andaccording to these parameters the retrieved fields in a selectstatement are chosen.what i need to know is how to make the fields of the select statementconditional,taking in consideration that it is more than one fieldaddedfor exampleSQLStmt="select"if param1 thenSQLStmt=SQLStmt+ field1end ifif param2 thenSQLStmt=SQLStmt+ field2end if
Code Block SELECT DISTINCT Field01 AS 'Field01', Field02 AS 'Field02' FROM myTables WHERE Conditions are true ORDER BY Field01
The results are just as I need:
Field01 Field02
------------- ----------------------
192473 8461760
192474 22810
Because other reasons. I need to modify that query to:
Code Block SELECT DISTINCT Field01 AS 'Field01', Field02 AS 'Field02' INTO AuxiliaryTable FROM myTables WHERE Conditions are true ORDER BY Field01 SELECT DISTINCT [Field02] FROM AuxTable The the results are:
Field02
----------------------
22810 8461760
And what I need is (without showing any other field):
Field02
----------------------
8461760 22810
Is there any good suggestion? Thanks in advance for any help, Aldo.
Hello friends, I want to use select statement in a CASE inside procedure. can I do it? of yes then how can i do it ?
following part of the procedure clears my requirement.
SELECT E.EmployeeID, CASE E.EmployeeType WHEN 1 THEN select * from Tbl1 WHEN 2 THEN select * from Tbl2 WHEN 3 THEN select * from Tbl3 END FROM EMPLOYEE E
can any one help me in this? please give me a sample query.
I have 3 tables, with this relation: tblChats.WebsiteID = tblWebsite.ID tblWebsite.AccountID = tblAccount.ID
I need to delete rows within tblChats where tblChats.StartTime - GETDATE() < 180 and where they are apart of @AccountID. I have this select statement that works fine, but I am having trouble converting it to a delete statement:
SELECT * FROM tblChats c LEFT JOIN tblWebsites sites ON sites.ID = c.WebsiteID LEFT JOIN tblAccounts accounts on accounts.ID = sites.AccountID WHERE accounts.ID = 16 AND GETDATE() - c.StartTime > 180
Hey guys i have a stock table and a stock type table and what i would like to do is say for every different piece of stock find out how many are available The two tables are like thisstockIDconsumableIDstockAvailableconsumableIDconsumableName So i want to,Select every consumableName in my table and then group all the stock by the consumable ID with some form of total where stockavailable = 1I should then end up with a table like thisEpson T001 - Available 6Epson T002 - Available 0Epson T003 - Available 4If anyone can help me i would be very appreciative. If you want excact table names etc then i can put that here but for now i thought i would ask how you would do it and then give it a go myself.ThanksMatt
SELECT Top 10 Name, Contact AS DCC, DateAdded AS DateTimeFROM NameTaORDER BY DateAdded DESC I'm trying to right a sql statement for a gridview, I want to see the last ten records added to the to the database. As you know each day someone could add one or two records, how can I write it show the last 10 records entered.
Hello How can i say this I would like my if statement to say: if what the client types in Form1.Cust is = to the Select Statement which should be running off form1.Cust then show the Cust otherwise INVALID CUSTOMER NUMBER .here is my if statement. <% If Request.Form("Form1.Cust") = Request.QueryString("RsCustNo") Then%> <%=Request.Params("Cust") %> <% Else %> <p>INVALID CUSTOMER NUMBER</p> <% End If%> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:RsCustNo %>" ProviderName="<%$ ConnectionStrings:RsCustNo.ProviderName %>" SelectCommand="SELECT [CU_CUST_NUM] FROM [CUSTOMER] WHERE ([CU_CUST_NUM] = ?)"> <SelectParameters> <asp:FormParameter FormField="Cust" Name="CU_CUST_NUM" Type="String" /> </SelectParameters> </asp:SqlDataSource>any help would be appreciated
I would like to be able to add subtotals for extended_cost and tax_amt for the following query and then a net_cost that is a sum of extended_Cost and tax_amt for each of the orders I have. I believe I need to somehow use the Group by command, but with so many fields from so many fields, I am not sure where to start. Here is my code so far...
Code:
SELECT Customer.First_Name, Customer.Middle_Name, Customer.Last_Name, Customer.Address, Customer.City, Customer.Region, Customer.Postal_Code, Customer.Country, Customer.Customer_ID, Store.Store_Address, Store.Store_City, Store.Store_State, Store.Store_Zip_code, Store.Store_Phone_Number, Store.Store_Fax_Number, Orders.Order_ID, Employees.LastName, Employees.FirstName, Item.Item_ID, Item.Taxable_Nontaxable, Order_Line.Price, Order_Line.Units_Purchased, Order_Line.Discount, Tax_Table.Tax_Rate, 'Extended_Price' = (Order_Line.Price*Order_Line.Units_Purchased*(1-Order_Line.Discount)), CASE WHEN Item.Taxable_Nontaxable = 1 THEN ((Order_Line.Price*Order_Line.Units_Purchased*(1-Order_Line.Discount))*Tax_Table.Tax_Rate) ELSE ((Order_Line.Price*Order_Line.Units_Purchased*(1-Order_Line.Discount))*0) END AS Tax_Amt FROM Orders INNER JOIN Order_Line ON Orders.Order_ID = Order_Line.Order_ID INNER JOIN Customer ON Orders.Customer_ID = Customer.Customer_ID INNER JOIN Store ON Orders.Store_Code = Store.Store_Code INNER JOIN Employees ON Orders.Sales_Person_ID = Employees.EmployeeID INNER JOIN Item ON Order_Line.Item_ID = Item.Item_ID INNER JOIN Tax_Table ON Orders.Store_Code = Tax_Table.Store_Code WHERE Orders.Order_Filled = 0 ORDER BY Orders.Order_ID COMPUTE SUM((Order_Line.Price*Order_Line.Units_Purchased*(1-Order_Line.Discount))) BY Orders.Order_ID
I have a dimension that has the following members:
Directors
Senior Managers
Managers
Senior Associates
Associates
But they way they need to be displayed includes subtotals. Senior Managers and Managers are placed into Management and Staff is a total of everyone except Directors. They should appear on the report in something like this:
Directors 10
Senior Managers 15
Managers 9
Management 24
Senior Associates 17
Associates 40
Staff 81
Total 91
What is the best way to do this? Right now I am using a matrix because I am also showing headcounts by Period. Is a table a better way to go? Is it something that should be done in my dimension?
I can do the Total part. I am just not sure how to make the subtotals inbetween the other lines.
2003 2004 2005 Total cars apples cars apples cars apples Tom 3 1 4 2 5 1 16 Sally 0 2 4 1 7 6 20
And I need the last column (the group subtotals) to be like this:
Totals cars apples 12 4 11 9
So basically, the question is, how do I get the second column-group (cars/apples) subtotals to appear in the last column? As seen, the the subtotal for the first column-group (year) is meaningless.
I have a matrix report which is showing user information. The Rows are displaying numbers for each user, and the columns show the user info in weekly increments. I have 7 fields of info for each user. My stored procedure already is set up to give me the correct numbers. I dont need to SUM them or anything. Although in the report designer it forced me to SUM them since it was part of an aggregate. This still worked for me anyhow because it was Summing a single value.
However, at the end of the report i want to display totals for all the users combined, per week. So right now the report is showing 21 weeks, so at the end of the report i should have 21 sets of totals.
I right clicked on the users name column and selected subtotal. This gave me some of what i want. But some of the numbers are not correct. Some of the numbers should not just be a simple SUM of the column. Some of the values should be averages etc. I know how to calculate those values myself (its very simple math) but i dont know how to do it using this setup in the report designer. So in the matrix, for each week, how can i calculate the totals for all the users combined and specify the formula used to get the totals for each field?
I have contracts grouped by project then grouped by division. On the division group header I want to show the subtotal of all active projects only. CountDistinct(Fields!ProjectId.Value) gives me count of all projects.
I can't figure out what I need to get only a subset of projects counted. I need something like:
I am using three tables in this query, one is events_detail, one is events_summary, the third if gifts. The original select statement counted the number of ids (event_details.id_number) that appear per event_name (event_summary.event_name).
Now, I would like to add in another column that counts the number of IDs that gave a gift who attended an event that were also listed in the event_ details table. So far I have come up with the following. My main issue is linking the subquery properly back to the main query. how to count in the sub-query and have the result placed within the groups results in the main query.
SELECT es.event_name, es.event_id, COUNT(ed.id_number) Number_Attendees, ( SELECT COUNT(gifts.donor_id) AS Count2 FROM gifts WHERE gifts.donor_id = ed.id_number ) subquery2
SELECT LTRIM(LoanAnalyst) AS [Loan Analyst] ,DischargeType AS [Discharge Type] ,CONVERT(varchar, DateCompleted, 101) AS [Date Completed] ,COUNT(ClaimID) As [Completions]
[Code] ....
This produces this
Loan AnalystDischarge TypeDate CompletedCompletions Bill ReidType 1 3/3/20151 Bill ReidType 1 2/11/20151 Bill ReidType 2 3/11/201518 Bill ReidType 3 3/11/20151 Bill ReidType 4 3/11/20159
[Code] ....
I would like my results to look like this. I've tried using WITH ROLLUP but it doesn't give me the below.
Loan AnalystDischarge TypeDate CompletedCompletions Bill ReidType 1 3/3/20151 Bill ReidType 1 2/11/20151 Bill ReidType 2 3/11/201518 Bill ReidType 3 3/11/20151 Bill ReidType 4 3/11/20159 30
I am new to SQL and have been given the task of adding Subtotals and a Grand Total to a report. Below is my code...can someone point me in the right direction?
SELECT POP30300.POPRCTNM, receiptdate, VENDORID, VENDNAME, POP30310.ITEMNMBR, SERLTNUM LOTNUMBR, LandedCost = ISNULL(CONVERT(money,LOTATRB1),0), STNDCOST = ISNULL(CONVERT(money,STNDCOST),0), LandedCostStatus = CASE WHEN CONVERT(money,ISNULL(LOTATRB1,0)) = 0 THEN 'Missing' ELSE CASE WHEN (CONVERT(money,ISNULL(LOTATRB1,0))-STNDCOST)/STNDCOST*100 NOT BETWEEN -30 AND 30 THEN 'OutOfRange' ELSE 'Okay' END END, PONUMBER, ISNULL(POP30310.UNITCOST,0) / ISNULL(POP30310.UMQTYINB,1) POPRICE, ISNULL(QTYAVAIL,0) QTYAVAIL FROM ODB.dbo.POP30300 POP30300 (NOLOCK) INNER JOIN ODB.dbo.POP30310 POP30310 (NOLOCK) ON POP30300.POPRCTNM = POP30310.POPRCTNM INNER JOIN ODB.dbo.POP30330 POP30330 (NOLOCK) ON POP30310.POPRCTNM = POP30330.POPRCTNM AND POP30310.RCPTLNNM = POP30330.RCPTLNNM INNER JOIN ODB.dbo.IV00301 IV00301 (NOLOCK) ON POP30330.ITEMNMBR = IV00301.ITEMNMBR AND POP30330.SERLTNUM = IV00301.LOTNUMBR LEFT JOIN ODB.dbo.IV00101 IV00101 (NOLOCK) on POP30330.ITEMNMBR = IV00101.ITEMNMBR LEFT JOIN (SELECT ITEMNMBR, LOTNUMBR, SUM(QTYRECVD-QTYSOLD-ATYALLOC) QTYAVAIL FROM ODB.dbo.IV00300 IV00300 (NOLOCK) GROUP BY ITEMNMBR, LOTNUMBR) QTYAVAIL ON POP30330.ITEMNMBR = QTYAVAIL.ITEMNMBR AND POP30330.SERLTNUM = QTYAVAIL.LOTNUMBR WHERE POP30300.POPTYPE IN (1,3) AND POP30300.VOIDSTTS = 0 -- AND POP30300.receiptdate > DATEADD(dd,-35,GETDATE()) AND ISNUMERIC(LOTATRB1) = 1 AND ISNULL(QTYAVAIL,0) <> 0
I have the matrix above that displays the subtotals per customer(group_row), per quarter(group_column). I added a subtotal to the top group_column (year) so I can get grand total. I need to modify grand total formula to display variance instead.
I don't need to modify the subtotal formula per Customer/quarter , only per cutomer/Year. Is it possible?
I want to display subtotals for a column only for that page. Like;
Index Value ----------------------------- 1 4 2 5 Subtotal 9 ---------------------------- 3 1 4 2 Subtotal 3 Total 12
RunningValue gives cumulative totals. I need subtotals for each visible page only. Is there a way to do it ? Constraints: I'm using a table. And I shouldn't use page breaks on my report.
Hi I have a matrix report. It expands to the right when the user chooses the amounts of months he/she wishes to see. Then it is populated with revenues for each month and deportment. On the matrix report I have put in a couple of Subtotals. Some of the totals are empty due to a month in a department with no revenue.
I wish to see a 0 on the subtotal column but I don€™t want to see a 0 on the month column. If I use =IIF( Fields!Revenue.Value is Nothing, "0", Fields!Revenue.Value) on the month columns I will see 0 all over the place. But I only want a 0 on the subtotal column. Can I do this?
I am having some trouble with this very complicated stored procedure. It is for a transcript generator. The following code does work as it is. The stored procedure return all rows from the ClassGrades table, with subtotals for each semester and a grand total. The two things that I need to add to this stored procedure is:
The ability to query only the records, subtotal, and total for the studentID in the variable @StudentID. I have tried adding WHERE statements where they are usually found, but ends up return no rows as a result. Should I be using the HAVING statement?
The calculation of cumulative GPA, where each semester before affects all semester at a later date. If this is impossible, which to my knowledge is, its not required. Its just a nice thing to have.
Here is the current code:
ALTER PROCEDURE [dbo].[ClassGrades_FillStudent]
@StudentID text
AS
BEGIN
SELECT StudentID, SemesterCode,ClassID, Grade, CreditHours, QualityPoints FROM (
SELECT 0 AS sort1, StudentID, SemesterCode, dbo.DropDownItems_GetValue(ClassID) AS ClassID, Grade, CreditHours, Grade*CreditHours AS QualityPoints
, 0 AS sort2 FROM ClassGrades
UNION ALL
SELECT 0,Null, SemesterCode + 'TOTAL',Null,(SUM(Grade*CreditHours)/SUM(CreditHours)), SUM(CreditHours), SUM(Grade*CreditHours) AS QualityPoints , 1 FROM ClassGrades
GROUP BY SemesterCode + 'TOTAL'
UNION ALL
SELECT 1, Null, 'Grand Total',Null, (SUM(Grade*CreditHours)/SUM(CreditHours)), SUM(CreditHours), SUM(Grade*CreditHours) AS QualityPoints, 1 FROM ClassGrades
I am trying to dynamically create subtotals base on values in a column. I also have to group by year. I have gotten the group by year. I used the (previous function) to check for the year and col1 not being equal. I am getting the first subtotal back, don't know how to proceed in my function to return the remaining subtotals
I'm wondering if its possible to use the subtotal for one group in a matrix in an expression for another group in the matrix.
Im getting the total number of units someone holds in one column, and need to show the percentage of the total units in another column.
An example of what im doing is below... argh images dont seem to be working when you post then! sorry
the first group is Date - This will show all there quantities anytime a trade occurs.
the second and third groups are Quantity (of units) and % of fund.
Quantity is a running value of all the units the account holder has. The percentage needs to be that number / subtotal of all units on that date. So the expression needs to be something like:
=runningvalue(Fields!Quantity.Value, sum, "matrix1_Account_Reference") / --subtotal of date group-- * 100
Let's say I have raw data that looks something like this
Fruit_name status count apples Fresh 5 apples rotten 3 pears Fresh 3 pears rotten 2
and I was to matrix it and group on fruit_name and add a subtotal to count. In that subtotal, without changing what was displayed in the details number, could I conditionaly only show a sum of fresh fruit? Example below