Hi, I have narrowed the query - I just want to return the FIRST instance of each ticket, ie the Source. Here is the table:
CREATE TABLE `Thedata1` ( `Source` varchar(15) collate latin1_general_ci NOT NULL default '', `Close_Time` datetime NOT NULL default '0000-00-00 00:00:00', `start_Time` datetime default NULL, COMMENT 'correct time in Seconds' `start_Time2` datetime default NULL COMMENT 'Original Time in Seconds', `Original_Cycle_Time` decimal(11,4) default NULL, `workday` double(20,0) default NULL, PRIMARY KEY (`Source`,`start_Time2`,`Close_Time`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; My best guess on how to do this would be a self join? select `a1`.`Source, If(`a1`.`workday` < `a2`.`workday`, `a1`.`workday`,`a2`.`workday`) from `Thedata1` as `a1` inner join `Thedata1` as `a2` on `a1`.`Source` = `a2`.`table1` and `a1`.`workday` > `a2`.`workday` There can be more than 2 duplicates, and occasionally no duplicates. I really am not sure why this isn't working. Can anyone offer an insight? Thank you, Craig -----Original Message----- From: Jay Pipes [mailto:[EMAIL PROTECTED] Sent: Thursday, September 13, 2007 1:27 PM To: Weston, Craig (OFT) Cc: mysql@lists.mysql.com Subject: Re: [mysql] duplicating lines Hi Craig, would you mind posting the SHOW CREATE TABLE for the tables in question? I'm having trouble determining what is the primary key for your service ticket table... Thanks, -Jay Weston, Craig (OFT) wrote: > Hello again, > > I am having a duplication of results problem. I believe my > query (below) is giving me exactly what I deserve in writing it. > > > > What it returns to me is a row for each status. What I would most want > would be a single row with the oldest status - IE the status datetime > that happened earliest. > > > > What I am trying to do is determine when a service desk ticket first > enters any one of these three categories. I am not using distinct on > `thedata2`.`Source` as this does not effect the result set. > > > > I have 2 tables. > > One of the tables lists all the ticket information at time of the ticket > being closed. The other has an entry referenced by ticket number for > each time a ticket is touched or updated. So what I am trying to do is > identify the last time it was touched with the appropriate status > change. > > > > Does anyone have any idea what I could do to eliminate the duplicate > with the oldest time? I am experimenting in the idea of a subquery but > can't think of anything else. > > > > > > ??? > > > > Thanks, > > craig > > > > > > SELECT > > `thedata2`.`Source`, > > `thedata1`.`Status`, > > `thedata2`.`Priority`, > > `thedata1`.`start_Time`, > > `thedata1`.`Close_Time`, > > `thedata1`.`workday`'cycletime' > > FROM > > `thedata2` > > Inner Join `thedata1` ON `thedata1`.`Source` = `thedata2`.`SourceSR` > > > > WHERE > > > > (`thedata1`.`Status` like 'Resolved' OR > > `thedata1`.`Status` like 'Restored' OR > > `thedata1`.`Status` like 'Isolation') > > > > and > > `thedata2`.`Open_Time` BETWEEN '2007-02-01 00:00' AND '2007-08-31 > 23:59:59' > > And > > > > ((`thedata2`.`Priority` = 1 and `thedata1`.`workday` > 14400) > > OR > > (`thedata2`.`Priority` = 2 and `thedata1`.`workday` > 86400) > > or > > (`thedata2`.`Priority` = 2 and `thedata1`.`workday` > 172800)) > -------------------------------------------------------- > This e-mail, including any attachments, may be confidential, privileged or otherwise legally protected. It is intended only for the addressee. If you received this e-mail in error or from someone who was not authorized to send it to you, do not disseminate, copy or otherwise use this e-mail or its attachments. Please notify the sender immediately by reply e-mail and delete the e-mail from your system. > -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]