Solved

SQL SubSelect Query, join two separate queries

Posted on 2007-03-29
8
2,010 Views
Last Modified: 2012-06-27
I've got two queries that I want to combine into one:

SELECT LogDay, Visits FROM vwNumVisitsByDay WHERE LogYear = 2007 AND LogMonth = 2 ORDER BY LogDay
SELECT LogDay, Pages FROM vwNumPagesByDay WHERE LogYear = 2007 AND LogMonth = 2 ORDER BY LogDay

The first query returns:
1      77
2      93
3      9
4      15
5      83
6      82
7      99
8      90
9      93
10      20
11      14
12      166
13      127
14      125
15      105
16      124
17      11
18      16
19      94
20      95
21      100
22      101
23      77
24      14
25      3
26      91
27      63
28      76

The second,
1      257
2      349
3      24
4      36
5      236
6      334
7      325
8      347
9      308
10      39
11      49
12      416
13      364
14      10
16      174
17      19
18      51
19      259
20      151
21      166
22      415
23      252
24      55
25      6
26      273
27      259
28      162

So I want the results instead to be:
1      77      257
2      93      349
3      9      24
4      15      36
5      83      236
6      82      334
7      99      325
8      90      347
9      93      308
10      20      39
11      14      49
12      166      416
13      127      364
14      125      10
15      105      0
16      124      174
17      11      19
18      16      51
19      94      259
20      95      151
21      100      166
22      101      415
23      77      252
24      14      55
25      3      6
26      91      273
27      63      259
28      76      162

Many thanks!
eq
0
Comment
Question by:equentin
  • 3
  • 3
  • 2
8 Comments
 
LVL 10

Expert Comment

by:lahousden
ID: 18817551
SELECT LogDay, Visits, Pages FROM vwNumVisitsByDay WHERE LogYear = 2007 AND LogMonth = 2 ORDER BY LogDay
0
 

Author Comment

by:equentin
ID: 18817562
They're actually two different views I'm using...
0
 
LVL 5

Expert Comment

by:ethan_mmg
ID: 18817567
SELECT a.LogDay, SUM(a.Pages), SUM(a.Visits)
FROM (
SELECT LogDay, 0 Pages, Visits FROM vwNumVisitsByDay WHERE LogYear = 2007 AND LogMonth = 2 ORDER BY LogDay
Union All
SELECT LogDay, Pages, 0 FROM vwNumPagesByDay WHERE LogYear = 2007 AND LogMonth = 2 ORDER BY LogDay) a
GROUP BY a.LogDay
0
Microsoft Certification Exam 74-409

Veeam® is happy to provide the Microsoft community with a study guide prepared by MVP and MCT, Orin Thomas. This guide will take you through each of the exam objectives, helping you to prepare for and pass the examination.

 

Author Comment

by:equentin
ID: 18817589
Hi Ethan,

That returns the following error:

Server: Msg 1033, Level 15, State 1, Line 4
The ORDER BY clause is invalid in views, inline functions, derived tables, and subqueries, unless TOP is also specified.
Server: Msg 170, Level 15, State 1, Line 5
Line 5: Incorrect syntax near ')'.
0
 
LVL 10

Accepted Solution

by:
lahousden earned 500 total points
ID: 18817639
My bad.  Howsabout:

SELECT LogDay, Visits, Pages
from vwNumVisitsByDay as v
full outer join vwNumPagesByDay as p on p.LogYear = v.LogYear and p.LogMonth = v.LogMonth and p.LogDay = v.LogDay
where (v.LogYear = 2007 and v.LogMonth = 2)
or (p.LogYear = 2007 and p.LogMonth = 2)
0
 
LVL 5

Expert Comment

by:ethan_mmg
ID: 18817653
SELECT a.LogDay, SUM(a.Pages), SUM(a.Visits)
FROM (
SELECT LogDay, 0 Pages, Visits FROM vwNumVisitsByDay WHERE LogYear = 2007 AND LogMonth = 2
Union All
SELECT LogDay, Pages, 0 FROM vwNumPagesByDay WHERE LogYear = 2007 AND LogMonth = 2 ORDER BY LogDay) a
GROUP BY a.LogDay
ORDER BY a.LogDay
0
 
LVL 10

Expert Comment

by:lahousden
ID: 18817658
(...I know... ambiguous names...)

first line should be:

SELECT isnull (v.LogDay, pLogDay) LogDay, v.Visits, p.Pages
0
 

Author Comment

by:equentin
ID: 18817684
That's great, thanks all for your help!
0

Featured Post

Free eBook: Backup on AWS

Everything you need to know about backup and disaster recovery with AWS, for FREE!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Updating a field based from a if exist.... 2 33
How can I find this data? 3 25
Upgrading to SQL Server 2015 Express 2 32
SQL - Ordering Supervisor Hierarchy 2 10
PL/SQL can be a very powerful tool for working directly with database tables. Being able to loop will allow you to perform more complex operations, but can be a little tricky to write correctly. This article will provide examples of basic loops alon…
The Delta outage: 650 cancelled flights, more than 1200 delayed flights, thousands of frustrated customers, tens of millions of dollars in damages – plus untold reputational damage to one of the world’s most trusted airlines. All due to a catastroph…
Using examples as well as descriptions, and references to Books Online, show the documentation available for date manipulation functions and by using a select few of these functions, show how date based data can be manipulated with these functions.
Viewers will learn how the fundamental information of how to create a table.

749 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question