开发者

How can i prevent duplicate rows being selected in a select query?

I have been given the task of selecting key data from an Oracle database, but I am noticing that my select is returning duplicate rows. I don't need them for my report yet I don't want them t开发者_如何学Goo delete them. Could someone help to get only the data that I need. I have tried the following code but this doesn't help.

SELECT distinct bbp.SUBCAR "Treadwell",
       bbp.BATCH_ID "Batch ID",
       bcs.SILICON "Si",
       bcs.SULPHUR "S",
       bcs.MANGANESE "Mn",
       bcs.PHOSPHORUS "P",
       to_char(bcs.SAMPLE_TIME, 'dd-MON-yy hh24:MI') "Sample Time",
       to_char(bbp.START_POUR, 'dd-MON-yy hh24:MI') "Start Pour Time",
       to_char(bbp.END_POUR, 'dd-MON-yy hh24:MI') "End pour Time",
       bofcs.temperature "Temperature"
FROM  bof_chem_sample bcs, bof_batch_pour bbp, bof_celox_sample bofcs
WHERE bcs.SAMPLE_CODE= to_char('D1')
AND bbp.BATCH_ID=bcs.BATCH_ID
AND bcs.SAMPLE_TIME>=to_date('01-jan-10')


If your SELECT statement has a DISTINCT in it, then all of the returned records have a unique combination of values across the columns you are selecting. You need to identify which columns return different values across the records you deem to be duplicated.


If you look at the query translated to SQL Server type SQL you will see that there is no relation between your bofcs table and the rest of your data. Basically it is returning every record in the bofcs' temperature field, and that may be producing duplicate results?.

SELECT
     bbp.SUBCAR "Treadwell", 
     bbp.BATCH_ID "Batch ID", 
     bcs.SILICON "Si", 
     bcs.SULPHUR "S",
     bcs.MANGANESE "Mn", 
     bcs.PHOSPHORUS "P", 
     to_char(bcs.SAMPLE_TIME,'dd-MON-yy hh24:MI') "Sample Time", 
     to_char(bbp.START_POUR, 'dd-MON-yy hh24:MI') "Start Pour Time",
     to_char(bbp.END_POUR, 'dd-MON-yy hh24:MI') "End pour Time", 
     bofcs.temperature "Temperature"
FROM 
     bof_chem_sample bcs, 
INNER JOIN 
     bof_batch_pour bbp,
ON
     bbp.BATCH_ID=bcs.BATCH_ID
INNER JOIN
     bof_celox_sample bofcs
ON
     **-- NO RELATION B/N BOFCS and the other tables????**
WHERE 
     bcs.SAMPLE_CODE= to_char('D1') AND 
     bcs.SAMPLE_TIME>=to_date('01-jan-10')
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜