Ich versuche, eine Überprüfung aller Werte, die in einem bestimmten Zeitraum aus mehreren Tabellen geändert wurden. Gibt es eine einfachere Möglichkeit, das Folgende zu schreiben?SQL (Oracle) - Wie mehrere geänderte Werte aus mehreren Tabellen abfragen
select property_number, 'table1', count(*)
from table1
where start_date between to_date('07/01/2017','mm/dd/yyyy') and to_date('09/30/2017', 'mm/dd/yyyy')
group by property_number
union all
select property_number, 'table2', count(*)
from table2
where start_date between to_date('07/01/2017', 'mm/dd/yyyy') and to_date('09/30/2017', 'mm/dd/yyyy')
group by property_number
union all
select property_number, 'table3', count(*)
from table3
where start_date between to_date('07/01/2017', 'mm/dd/yyyy') and to_date('09/30/2017', 'mm/dd/yyyy')
group by property_number
union all
select property_number, 'table4', count(*)
from table4
where start_date between to_date('07/01/2017', 'mm/dd/yyyy') and to_date('09/30/2017', 'mm/dd/yyyy')
group by property_number
union all
select property_number, 'table5', count(*)
from table5
where start_date between to_date('07/01/2017', 'mm/dd/yyyy') and to_date('09/30/2017', 'mm/dd/yyyy')
group by property_number
Möglicherweise nicht, da sich Daten in mehreren Tabellen befinden. Warum arbeitest du nicht mit ** einer ** Tabelle mit einem Indikatorfeld zur Unterscheidung? Ähnlich strukturierte Tabellen sollten niemals separate Objekte im Schema sein. Lernen Sie, die Effizienz, Skalierbarkeit und Wartbarkeit von Abfragen zu normalisieren. – Parfait
Auf eine Nebenbemerkung: Wenn Sie Daten verwenden möchten, verwenden Sie keine Zeichenfolgenliterale und konvertieren Sie sie in Datumsangaben, sondern stattdessen Datumsliterale: 'where start_date zwischen Datum '2017-07-01' und Datum '2017-09-30'' . –