|
Yes, I need it to be SQL based. I think I'm nearly there, think possibly being the operative word
|
|
|
|
|
I hope this will help you
select max(mt.rowid) as RowId,
(select top 1 mt1.Data from mytable mt1 where rowid = max(mt.rowid)) as Data
from mytable mt
group by substring(mt.data, charindex('order',mt.data),len(mt.data))
order by max(mt.rowid) desc
I Love T-SQL
"VB.NET is developed with C#.NET"
If my post helps you kindly save my time by voting my post.
www.cacttus.com
|
|
|
|
|
Thanks for the reply, unfortunately there is nothing to group by. I need to find the last in sequence using only the OrderId and OldOrderId values.
|
|
|
|
|
Based on that data of table which you have gave in your first post then query will work. Otherwise post data structure how they are in table.
by this query
select max(mt.OldOrderID) as OldOrderID,
(select top 1 mt1.Data from mytable mt1 where mt1.OldOrderID = max(mt.OldOrderID)) as Data
from mytable mt
group by substring(mt.data, charindex('order',mt.data),len(mt.data))
order by max(mt.OldOrderID) desc
you will get this result
OldOrderID Example Data<br />
7 The fourth order in sequence 2<br />
3 The fourth order in sequence 1
I Love T-SQL
"VB.NET is developed with C#.NET"
If my post helps you kindly save my time by voting my post.
www.cacttus.com
|
|
|
|
|
Sorry, the data in ExampleData column could be anything, just purely an example to indicate that the record has additional data.
|
|
|
|
|
Ok, how about to explain you more your case, which result you want to get from your table data?
I Love T-SQL
"VB.NET is developed with C#.NET"
If my post helps you kindly save my time by voting my post.
www.cacttus.com
|
|
|
|
|
The resultset you had in your original post is the resultset I am looking for, however, like I said in my original post, there is nothing to group by. What I probably should have posted is given the following dataset, how do I find the last RowID in the sequence and missed off the ExampleData column.
|
|
|
|
|
For anyone who is interested, here is my solution:
SELECT
Orders.ExampleData
FROM
OrderSeq AS Orders
LEFT JOIN
OrderSeq AS Updates ON (Orders.OrderId = Updates.OldOrderId) AND (Updates.[Type] = 'U')
where
(Updates.RowId IS NULL)
I knew it was easy, just couldn't get my head around it this morning.
Thanks to everyone who replied.
|
|
|
|
|
Hello people of CP,
I have a problem and would like you to help me fix it.
The problem is that right after I call a stored procedure calling the method stated in the title, the execution of the program is interrupted without any warning or prompt whatsoever.
The code block is this:
public virtual object Execute()
{ return this.command.ExecuteNonQuery();
}
I know the command executes because the state in the DataBase is changed. But right after the return this.command.ExecuteNonQuery(); line, the program just stops. It doesn't throw an exception, it doesn't even go to the last bracket of the method, the program just exits.
So, any idea what this might be?
Thanks a lot!
Edit:
Here's a clearer example:
private void SetSystemEnviroment()
{
try
{
using (OracleCommand command = this.con.CreateCommand())
{
command.CommandText = "SetSystemEnviroment";
command.CommandType = CommandType.StoredProcedure;
command.ExecuteNonQuery();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
}
Again, after the command.ExecuteNonQuery(); line, it just stops the execution of the program, no warnings, no exceptions, nothing.
modified on Monday, July 25, 2011 6:23 PM
|
|
|
|
|
Can you post the SetSystemEnviroment Stored Procedure code?
|
|
|
|
|
I miss the Command.Connection.Open() before you executeNonQuery()
In Word you can only store 2 bytes. That is why I use Writer.
|
|
|
|
|
Hello,
I would like to show data as a single row instead of multiple rows.
For example, a certain user has two status associated, like maybe "Pending Approval" and "Waiting Email Verfication". Instead of showing these statuses on two different rows, I would like to show as one row.
Currently,
John Smith Pending Approval
John Smith Waiting Email Verfication
Should be
John Smith Pending Approval, Waiting Email Verfication
There could such multiple states for this user, but all show in one row.
Thanks so much for your time!
|
|
|
|
|
You can use C# code to do it. Or do you need to do it only in SQL side?
I Love T-SQL
"VB.NET is developed with C#.NET"
If my post helps you kindly save my time by voting my post.
www.cacttus.com
|
|
|
|
|
|
Can you post structure of your table? I guess your table contain unique column?
I Love T-SQL
"VB.NET is developed with C#.NET"
If my post helps you kindly save my time by voting my post.
www.cacttus.com
|
|
|
|
|
You can either build your state list directly in a stored procedure, or create a function that will build it for you.
I encountered a similar situation yesterday: for a given item, multiple sources of data.
I created a function to concatenate the items, comma delimited, and used the function in the query to return all of the data in a single row.
Tim
|
|
|
|
|
My apologizes.
This link worked perfectly,
<a href="http://www.sqlservercentral.com/scripts/Miscellaneous/32004/">http: , using COALESE
|
|
|
|
|
This should help.
DECLARE @Col1 varchar(max)
SELECT @Col1 = COALESCE(@Col1 + ', ', '') + CAST(Col1 AS varchar(100))
FROM Table1
WHERE (................)
SELECT @EmployeeList
|
|
|
|
|
|
Assuming Sql Server 2005 and above, try this
Declare @t table([Name] varchar(20),[Status] varchar(50))
insert into @t values
('John Smith','Pending Approval'),('John Smith','Waiting Email Verfication')
--,('User2','Pending Approved'),('User2','Sent email'),('User2','Other activity')
--Select * from @t
select Result = [Name] + ' ' + Stuff((Select ',' + CAST([Status] as varchar(100)) from @t t2 where t1.[Name]
= t2.[Name] for XML Path('')),1,1,'')
from @t t1
group by t1.[Name]
Niladri Biswas
|
|
|
|
|
STUFF is what you're looking for indeed.
|
|
|
|
|
Thanks for your responses.
Instead of a comma separated list, i would like it as line breaks.
I am separating the information by pipes, and later doing a replace after calling the function like below.
I am doing this -- SELECT replace(DBO.fn_getAssociateComments(168), '|', char(13)+char(10))
But it is putting any line breaks??Am I missing something?
Thanks a bunch!
|
|
|
|
|
Hi,
According to this stackoverflow thread [^], it should work.
Don't know why it doesn't work for you...
Did you try replacing CHAR(13) + CHAR(10) with "\r\n" just to try?
Edit:
Maybe you should take a look at this example too: [^]
|
|
|
|
|
I keep bumping into a need for this.
I'm tossing this into my code library.
Very, very useful. In fact it was useful today in a problem.
_____________________________
Give a man a mug, he drinks for a day. Teach a man to mug...
|
|
|
|
|