Use GroupBy() To Group Over Multiple Columns With Program?
Jun 20, 2012I tried to do this like i would in C#, with an anonymous type but the result is just not correct.[code]...
View 1 RepliesI tried to do this like i would in C#, with an anonymous type but the result is just not correct.[code]...
View 1 RepliesI have a list of attachments that I need to group by clientCLID and EmailAddress. From this grouped list I only need a list of clientCLIDs. After fiddling for a while I've managed to get it to work as follows:
[Code]...
I am trying to write a module that will select cells from multiple, non-contiguous columns within a row that is defined by a variable. The column numbers are known and are unchanging. For example, my worksheet might look like this:
A B C D
Row 1 X X X X
I want to select cells A1, B1, and D1; however, I don't want to use the row number (1 in this case) in my code. Rather, I want the row number to be specified as a variable. The code I am writing is inside a For/Next loop, so I would like to use the iterative variable (i in this case) to define the row number. That way, every iteration of the For loop will select cells from a different row.
I have the below Linq query that is returning the data but I need to aggregate the columns to group on the Period and Sum the Count columns. How do I go about doing this?
LINQ
from t In tblTimes
join h In tblEngineeringDashboard_CADMachinesCounts on t.ID Equals h.TimeID
Order By t.Period
[code].....
The following data is created by joining two sql tables together:I would like to group together distinct rows of DateStamp/UserName/ StudentName/ InstructorName/TableName/PrimaryKey (I'll call this 'group records') and then group under these ColumnName/PreviousValue/NewValue (I'll call this 'subgroup records')The end result would be that I could iterate through the 'group records' - there would be 5. In each 'group record', I could then iterate through the 'subgroup records'. The 5 groups would contain 3, 2, 5, 2 and 1 subgroup records respectively.What would be the syntax to create a query to do this? Ideally this would be in a vb.net linq syntax.
View 1 Repliesalso i have a table called Orders with several columns, they contain information about the order and store the ID of the Customer they belong to.Question is: how can i query that table with (preferably) linq (the datacontext is from LinqToSql) to return the following dataI want to search for any entry with the matching CustomerID which took place, group them by Year, Sum the Totals respectively and add them to the listview?I now i could use lamda expressions and aggregate, its just not clear how (option infer on,db is a datacontext object,CustomerID is an int32 variable):
Dim Orders = (From order In db.Orders Where order.CustomerID = CustomerID).GroupBy(Function(p) p.Date.Year).GetEnumerator
I reckon i'd have to create an anonymous type like the following:
[code].....
Background: I'm importing data from a MySQL database into a SQL-Server database(for reports and later a SSAS-Cube). I want to normalize the data at the same time. I want to group repeating Ticket_IDs to one record in a table Contact with other useful informations and leave the rawdata in the sub-table ContactDetail(with foreignkey to Contact).Hence every record in Contact has a unique Ticket_ID.
I've decided to use strong typed datasets for the import. Now i'm wondering what's the best way to detect if i've already added a Ticket_ID. I could check for it in every loop(~100000 records) but i'm assuming that there is a better/faster way.
Simplified sample-data:
Ticket_ID ID fiContact
89442226 1 1
89442226 2 1[code].....
I will have a look if this is faster than the iterating approach with a HashSet to detect if the contact was already created.
I have a small project i am doing for work to compare our website catalogue to our actual inventory in our financial software. To do this, i have exported the online catalogue as a delimited text file using "^" as the delimiter. I then want to go into our Accpac data a find out if all the items are still active, the current price and the stock on hand.
[Code]...
I'm using VB.NET on Framework 2.0. I'm looking to quickly group a Generic List<> by two properties. For the sake of this example lets say I have a List of an Order type with properties of CustomerId, ProductId, and ProductCount. How would I get the average of ProductCounts grouped by CustomerId and ProductId in VB.NET ?Unfortunatly I cannot do this at DB level (which would have been easy). Also I cannot use LINQ or Lambada as Im on Framewwork 2.0. So I need to do this at application level in VB.net. The list is returned to me sorted by CustomerId and ProductId so I guess with a few loop sI should be able to create a average value for but there must be a cleaner way to do this?
View 1 RepliesMy particular example is fairly complex but I think the concept would apply equally to something like a logging system so I'll use that instead for ease of explanation. It's a ficticious example, please don't harp on or agonise over what is achitectually, programatically or morally wrong with the example itself
[Code]...
I don't want to 'cheat' and resort to a long-winded way of doing it when performance isn't critical here and I'm moderately confident it can be done in a single LINQ statement.
I spent a lot of time on this problem. I am able to do simple Group By LINQ queries (on one property) but for multiple fields I'm a little stuck... Here is a LINQPad sample of what I want to do :
dim lFinal={new with {.Year=2010, .Month=6, .Value1=0, .Value2=0},
new with {.Year=2010, .Month=6, .Value1=2, .Value2=1},
new with {.Year=2010, .Month=7, .Value1=3, .Value2=4},
[Code]....
Here is a snippet of my (VB) LINQ:
From event_evn In xmlEvents.Descendants("event_evn") _
Join genre_gnr In xmlGenre.Descendants("genre_gnr") On event_evn.Element("evn_gnr_id") Equals genre_gnr.Element("gnr_id").Value _
Group Join eventdata_eda In xmlEventData.Descendants("eventdata_eda") On _
eventdata_eda.Element("eda_evn_id").Value Equals event_evn.Element("evn_id").Value And _
eventdata_eda.Element("eda_dty_id").Value Equals "15" _
[Code]...
I have the following:
myFilteredContractors = (From c In myFilteredContractors
Join cc In myConClasses On c.ContractorId Equals cc.ContractorId
Where inClassifications.Contains(cc.ClassificationId)[code].....
This is properly ordering this list of contractors by the number of classifications that they have.I also want to order them by whether or not they have a field set (CompanyOverview), which if is an empty string should be below those contractors who have set their CompanyOverview. Also, after the CompanyOverview is ordered I want to order by Registration Date.So it should order by:
Number of Classifications
Whether Overview has been set (c.CompanyOverview)
Registration Date (c.AppliedDate)
Is it possible to all of this in LINQ?
I am stumped. I have a DTO object with duplicates patient address data. I need to get only the unique addresses.
[Code]...
Can anyone help me by translating this SQL Statement to Linq? [code]
View 1 RepliesMy LINQ query contains the following Group By statement:
Group p By Key = New With { _
.Latitude = p.Address.GeoLocations.FirstOrDefault(Function(g) New String() {"ADDRESS", "POINT"}.Contains(g.Granularity)).Latitude, _
.Longitude = p.Address.GeoLocations.FirstOrDefault(Function(g) New String() {"ADDRESS", "POINT"}.Contains(g.Granularity)).Longitude}
The query works, but here is the SQL that the clause above produces
SELECT [t6].[Latitude]
FROM (
SELECT TOP (1) [t5].[Latitude]
[Code]....
but this produced an error: "A group by expression can only contain non-constant scalars that are comparable by the server."
I have the following text that I am trying to parse:
"user1@emailaddy1.com" <user1@emailaddy1.com>, "Jane Doe" <jane.doe@ addyB.org>,
"joe@company.net" <joe@company.net>
I am using the following code to try and split up the string:
Dim groups As GroupCollection
Dim matches As MatchCollection
Dim regexp1 As New Regex("""(.*)"" <(.*)>")
matches = regexp1 .Matches(toNode.InnerText)
For Each match As Match In matches
groups = match.Groups
message.CompanyName = groups(1).Value
message.CompanyEmail = groups(2).Value
Next
But this regular expression is greedy and is grabbing the entire string up to the last quote after "joe@company.net". I'm having a hard time putting together an expression that will group this string into the two groups I'm looking for: Name (in the quotes) and E-Mail (in the angle brackets).
I have written a code and tried linking up groupboxes from my input form called input.vb and the output form called results.vb.
[Code]...
I have used the above codes to access groupboxes from both forms. However, at run time I get errors saying "InvalidCastException was unhandled" and below that it says "Conversion from string to DOuble is not valid". This error points to a value in a group box that is actually hidden or disabled.
I'm filling a combobox from a dataset that has three columns, DealerID, DealerName, DealerState. I can only get one column to display. show two or more columns in a combobox? My code follows:
adapter.Fill(datList, "tblDealerID"))
Dim drDealer as DataRow
For Each drDealer in datList.Tables("tblDealerID").Rows
cboDealer.Items.Add(drDealer("DealerID"))
Next
i have six textboxes from which the user can query the database. Now the user can decide to fill all the fields and query this i have done using AND OR in the sql syntax but the problem is when he decides to leave some blank my program is throwing an exception how can i skip the blank fields and only execute the WHERE clause for the filled boxes.
View 6 Replieshow to read from the first column but I need to read from both of them. I am using full row select which I need on there.Here is the code I am using to get it for the first column.
Dim I As Integer
For I = 0 To ListView1.SelectedItems.Count - 1
MsgBox(ListView1.SelectedItems(I).Text)
Next
I have a ListView called lv with three columns. What's the quickest and easiest way to add items in it during runtime? I am using WPF.
View 1 RepliesI have a bindingsource that is connected to a table where tho fields determine uniqueness. During a refresh I would like to return to the row that the user was on when he clicked the refresh button. BindingSource.find only supports one column in so far as i have been able to infer. So how doi do it. Altering the table is out of the question. Besides searching on multiple fields is a common event. Like for example first and lastname or perhaps company and journal number.
View 15 RepliesHow can I set up my WPF datagrid to sort on multiple columns similar to having two sortable columns, clicking on the header of the first column for a primary sort and then SHIFT clicking on the header of the second column for a secondary sort. I would like the multiple column sort to happen automatically when the user clicks on the header of the first column without having to SHIFT click on the second column header. Is there a way to do this entirely in the xaml? If not how can I do this in the code behind? Currently using VB.Net but a C# snippet is acceptable if you have one.
View 2 RepliesI have 3 related tables in a DataSet - Customers, Products and Orders.I am trying to create an "editable" DataGridView which, ideally, will contain columns from all the tables. I have tried creating the joins in the TableAdapter SQL, but this results in a read-only data grid.
Customers and Orders are joined in a 1:M relationship by CUSTID.
Products and Orders are joined in a 1:M relationship by PRDID.
When the user adds a new Order record they will key the ORDERID, CUSTID, PRDID and QTY.I would like the DataGridView to display the related CUSNAM and PRDDES as soon as the user has keyed the Order record.The data must be displayed on a single data grid row. I am not interested in drill down or multiple data grids.My data looks like this:
Orders: ORDERID, CUSTID, PRDID, QTY
Products: PRDID, PRDDES
Customers: CUSTID, CUSNAM
The data grid should look like this:
ORDERID, CUSTID, CUSDES, PRDID, PRDDES, QTY
My SQL would look like this:
SELECT Orders.ORDERID, Orders.CUSTID, Customers.CUSNAME, Orders.PRDID, Products.PRDDES, Orders.QTY
FROM (ORDERS
INNER JOIN CUSTOMERS ON Orders.CUSTID = Customers.CUSTID)
INNER JOIN PRODUCTS ON Orders.PRDID = Products.PRDID;
I have put my business logic in a partial class as suggested in best practices. One of the conditions is that one of four fields of a row has have a value. Setting the errorprovider has no problems when creating a new row in the new row event. All the textboxes in the form show the error condition.
Dim ErrorString As String = "A value is needed for at least one of the " & vbCrLf & "Gallon, Fuel, Oil, or Misc fields"
e.Row.SetColumnError("Gallons", ErrorString)[code]....
The logic that sets them back to a no error condition though only sets the currently focused control in the form to no error. When the error is corrected.
MyFuelRow.SetColumnError("Gallons", "")
MyFuelRow.SetColumnError("FuelCost", "")[code]....
How can you reset multiple column errors at once?
Does anyone know how I can go about concatenating multiple columns from a table to populate into a combobox? I have 4 columns from which I need the data to show up in 1 line when clicking on the dropdown/combobox list. I'm not sure if I have to deal with the display member or the value member.
View 2 RepliesI'm trying to figure out how to get a query for multiple columns in my dataviewgrid.. So far i havn't even been able to make a single column query work, when i search something in First_Name for example, it returns nothing. ive used query builer, ive written the code myself, nothing seems to work.
View 3 RepliesI am making a application that manages room availability in a building.I have seen a similar function in another application that I'm trying to duplicate. I want to have a control, which I assume is the DataGridView that shows the room numbers on the left hand side, and then on the right it shows a box in that room numbers row for every day that the room is occupied. If it is occupied for more than one day, the box is joined.What control are they using? How do I link one row cell across multiple columns?
View 3 Replieshow to make a listbox have multiple columns and for certain columns to be editable.
I thought about using a DataGridView, but I am not linking this to any kind of database.