简体   繁体   中英

Oracle SQL - I want to combine multiple queries and group by the date, but the dates are pulling from different sources.

I am trying to combine 5 queries into one query so that I do not have to run multiple queries every time I want to update the report. Each of the 5 reports is formatted so the result looks like:

    The_Date      Sp_DAU    CS_Dau
   01-Jan-12       3423      3674
   02-Jan-12       1823      2547

and so on....(different columns for each, EXCEPT The_Date stays the same)

The problem is, The_Date comes from multiple tables so I don't know how to combine all the querys so the result looks like:

    The_Date       Sp_Dau     Cs_Dau  TapJoy_Ios_Dau  TapJoy_Android_DAU Portal_DAU
    01-Jan-12       1823      2547       35                  1115           33
    02-Jan-12       2453      3000       47                  1478           30

Does this make sense? Would it help if I posted all of the queries or is that too much information?

Looking at the second table, I'm assuming you'll always want to aggregate this data based on the date. As long as that's the case, you'll want to JOIN based on the date for your number, N, of tables.

SELECT * FROM Table1 T1
INNER JOIN Table2 T2 ON T1.The_Date = T2.The_Date
INNER JOIN Table3 T3 ON T1.The_Date = T3.The_Date
...
INNER JOIN TableN TN ON T1.The_Date = TN.The_Date

If your date is a SQL datetime, you'll probably want to round to the same exact day. That gets a little more complicated, since you'll need to use CAST( CAST( The_Date as INT) AS DATETIME) in each place that a datetime is referenced, including the joins.

Hope that helps.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM