2015-10-26 4 views
0

У меня возникли проблемы с попыткой вытащить определенные данные из двух таблиц. Согласно учебнику ИТС:SQL Server вытаскивает данные из нескольких таблиц

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

Однако при выполнении кода он выдает ошибку синтаксиса в в еще мне весь код выглядит так.. Кто-нибудь может мне помочь. Я бы хотел, чтобы это работало, чтобы выполнить мое задание. Это сводит меня с ума! Я связался с профессором, и он сказал, что код в книге верен, но я думаю, что он ошибается.

Может кто-нибудь помочь?

+0

Используйте Запятая вместо «А» в Из запроса. – pordi

ответ

0

Вы можете объединить две таблицы, как это:

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' 
1

Код, который вы предоставили, не является TSQL - на самом деле больше похож на какой-то псевдокод.

Просто угадать в именах столбцов, но если я получил это право ваш запрос должен выглядеть следующим образом: -

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

Не уверен, где вторая таблица входит в это, хотя.

+0

Спасибо! Я даже не знаю, откуда приходит второй стол, но он профессор. Невозможно доказать, что профессор ошибается. Я собираюсь отметить это, как ответ, но если профи выбрасывает кривый шар, я обязательно вернусь. Спасибо Мату и отлично провели день! – VCampos

0

Ваш предоставленный код очень запутан. Я вижу таблицу [terra..retailsales], но понятия не имею, что такое ваш другой стол. Вы уверены, что вам нужно получить данные из двух таблиц?

Какова синтаксическая ошибка, которую вы получаете? Можете ли вы вставить точный код, который вы пытаетесь сделать в блоке кода? Не так много смысла.

Чтобы извлечь данные из двух таблиц, вы можете объединить эти таблицы в CTE (общее табличное выражение), бросить их в таблицу temp или присоединиться к ним в инструкции select. Если формат обеих таблиц идентичен, то почему у вас есть два из них?

Вам не хватает названия столбца, в котором вы хотите сравнить [дату] с «3/01/2014 по 6/30/2015». Вы можете использовать getDate() для возврата текущего времени.

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

Вам не нужно повторно указать свое имя таблицы снова в строке «Where retailaccountid in retailsales = 2345678». Он просто предположит, что retailaccountid от retailsales.

+0

Извините, я понял, что не поставил второй стол. Выберите * FROM [terra..retailsales] и [terra..retailaccount] Где [retailaccountid] = 2345678 AND [] BETWEEN '3/01/2014' AND '6/30/2015' – VCampos

Смежные вопросы