VCampos
VCampos

Reputation: 15

SQL Server pulling data from multiple tables

I'm having a problem trying to pull a specific data from two tables. According to the textbook its:

Select * 
From terra..retailsales and terra..retailaccount 
Where retailaccountid in retailsales = 2345678
Get date range from = 3/01/2014 to 6/30/2015

However, when running the code it produces an syntax error within the in. Yet to me the whole code looks wrong. Can someone help me. I would like to get this to work in order to do my assignment. It's driving me nuts! I contacted the prof and he said that the code in the book is correct, but I think he's wrong.

Can someone help?

Upvotes: 0

Views: 138

Answers (3)

Nguyễn Hải Triều
Nguyễn Hải Triều

Reputation: 1464

You can JOIN two table, like this:

SELECT * 
FROM terra..retailsales RS
     INNER JOIN terra..retailaccount RC
       ON RS.retailaccountid = RC.ID
WHERE RS.retailaccountid = 2345678
     AND [date] BETWEEN '20140301' AND '20150630'

Upvotes: 0

EMUEVIL
EMUEVIL

Reputation: 512

Your provided code is very confusing. I see the [terra..retailsales] table, but have no idea what your other table is. Are you sure you need to get your data from two tables?

What is the syntax error you're receiving? Can you paste the exact code you're trying in a code block? Not much of that makes any sense.

In order to pull data from two tables, you could union those tables in a CTE (common table expression), throw them both into a temp table, or join them in a select statement. If the format of both tables is identical, then why do you have two of them?

You're missing the column name where you want to compare a [date] to "3/01/2014 to 6/30/2015". You can use getDate() to return the current time.

Select *
FROM [terra..retailsales]
Where [retailaccountid] = 2345678
AND [<DateColumn>] BETWEEN '3/01/2014' AND '6/30/2015'

You don't need to re-specify your table name again in line "Where retailaccountid in retailsales = 2345678". It will just assume that the retailaccountid is from retailsales.

Upvotes: 0

Mat Richardson
Mat Richardson

Reputation: 3606

The code you provided is not TSQL - actually looks more like some kind of pseudocode.

Just guessing at your column names here, but if I've got it right your query should look something like this:-

   SELECT * FROM terra..retailsales
   WHERE retailaccountid = 2345678
   AND [date range] BETWEEN '20140301' AND '20150630'

Not sure where the 2nd table comes into this though.

Upvotes: 1

Related Questions