Se me ha dado la tarea de seleccionar datos clave de una base de datos Oracle, pero me doy cuenta de que mi selección devuelve filas duplicadas. No los necesito para mi informe, pero no quiero que los eliminen. ¿Alguien podría ayudarme a obtener solo los datos que necesito? He intentado con el siguiente código, pero esto no ayuda.¿Cómo puedo evitar que se seleccionen filas duplicadas en una consulta de selección?
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')
Buena captura, nunca vi eso. Es una unión cartesiana completa, no es de extrañar que haya mucha duplicación :) – Datajam
Gracias fue un gran paso en la dirección correcta. Noté algunas otras desconexiones con la base de datos en sí misma debido a eso. –
Ver 'distinct' en una consulta debería sonar las alarmas. Por lo general, cubre algunos problemas en la consulta o en el diseño de la base de datos. –