Return data from multiple tables
Return data from multiple tables
am 22.05.2007 11:03:59 von Rafal
Hi there,
I have tables with such structure
transaction_YYMM
(idx,date,company_id,value)
where YYMM stands for 2digits year and month
I want to define query (maybe view, procedure):
select * from [???] where date>='2007-01-01' and date<='2007-04-30'
which will grab data from
transaction_0701
transaction_0702
transaction_0703
transaction_0704
and return all as one
best regards
Rafal
Re: Return data from multiple tables
am 22.05.2007 12:42:49 von Dan Guzman
> I want to define query (maybe view, procedure):
> select * from [???] where date>='2007-01-01' and date<='2007-04-30'
A UNION ALL query will combine multiple result sets:
SELECT *
FROM dbo.transaction_0701
UNION ALL
SELECT *
FROM dbo.transaction_0702
UNION ALL
SELECT *
FROM dbo.transaction_0703
UNION ALL
SELECT *
FROM dbo.transaction_0704
You can specify an explicit column list (a Best Practice) and encapsulate
the query in a view to facilitate reuse. You might also consider creating a
partitioned view (or a partitioned table if you are running SQL 2005
Enterprise Edition). See the Books Online for more information.
--
Hope this helps.
Dan Guzman
SQL Server MVP
"Rafa³ Bielecki" wrote in message
news:f2ubuk$i1o$1@nemesis.news.tpi.pl...
> Hi there,
>
> I have tables with such structure
>
> transaction_YYMM
> (idx,date,company_id,value)
>
> where YYMM stands for 2digits year and month
> I want to define query (maybe view, procedure):
> select * from [???] where date>='2007-01-01' and date<='2007-04-30'
> which will grab data from
> transaction_0701
> transaction_0702
> transaction_0703
> transaction_0704
> and return all as one
>
> best regards
> Rafal
>
Re: Return data from multiple tables
am 22.05.2007 13:42:52 von Rafal Bielecki
Uzytkownik "Dan Guzman" napisal w
wiadomosci news:JOz4i.22889$JZ3.9830@newssvr13.news.prodigy.net...
> A UNION ALL query will combine multiple result sets:
>
> SELECT *
> FROM dbo.transaction_0701
> UNION ALL
> SELECT *
> FROM dbo.transaction_0702
> UNION ALL
> SELECT *
> FROM dbo.transaction_0703
> UNION ALL
> SELECT *
> FROM dbo.transaction_0704
>
> You can specify an explicit column list (a Best Practice) and encapsulate
> the query in a view to facilitate reuse. You might also consider creating
> a partitioned view (or a partitioned table if you are running SQL 2005
> Enterprise Edition). See the Books Online for more information.
thank you Dan, your help is very important to me
Rafal
Re: Return data from multiple tables
am 23.05.2007 00:04:17 von Erland Sommarskog
Rafa³ Bielecki (rafal@bielecki.info) writes:
> I have tables with such structure
>
> transaction_YYMM
> (idx,date,company_id,value)
>
> where YYMM stands for 2digits year and month
> I want to define query (maybe view, procedure):
> select * from [???] where date>='2007-01-01' and date<='2007-04-30'
> which will grab data from
> transaction_0701
> transaction_0702
> transaction_0703
> transaction_0704
> and return all as one
In additions to Dan's response, I like to point out that from a logical
point of view, the above design is flawd. It's a lot easier to deal with a
single table. If there are enourmous volumes, it can still be motivated
with partitioning, but then we are talking enourmous values like tens
of millions of rows per month.
--
Erland Sommarskog, SQL Server MVP, esquel@sommarskog.se
Books Online for SQL Server 2005 at
http://www.microsoft.com/technet/prodtechnol/sql/2005/downlo ads/books.mspx
Books Online for SQL Server 2000 at
http://www.microsoft.com/sql/prodinfo/previousversions/books .mspx