2013-06-25 3 views
1

Я пытаюсь вернуть данные почтового индекса для каждой страны в нашей таблице заказов, это должен быть простой запрос, но я не могу заставить его работать. Запрос выполняется отлично, но каждая строка результата равна:SQL Выбор строк на основе определенного значения столбца

  • POSTCODE | COUNTRY | ID < страна идентификатор

Мой запрос выглядит следующим образом:

SELECT 'POSTCODE' as billing_postcode, 'COUNTRY' as Title, billing_country_id 
FROM [DB].[dbo].[Order] 
INNER JOIN [DB].[dbo].[Country] 
ON country_id = billing_country_id 
GROUP BY billing_country_id 

Ниже приведен пример вывода, что я получаю: -

enter image description here

Почему не возвращая почтовый индекс + страну? Может ли кто-нибудь увидеть, что я сделал неправильно здесь?

Благодаря

редактировать *

Базовая структура таблицы заказа:

OrderId | billing_postcode | billing_country_id

Основные страны структура таблицы:

country_id | Название

+0

Вы используете апострофы, которые создают только строки. Перепишите начало своего запроса как «SELECT POSTCODE as billing_postcode, COUNTRY as Title ...» – Arvo

ответ

2

Вы выбрали строку PostCode и Country не фактические столбцы.

SELECT POSTCODE as 'billing_postcode', COUNTRY as 'Title', billing_country_id 
FROM [DB].[dbo].[Order] 
INNER JOIN [DB].[dbo].[Country] 
ON country_id = billing_country_id 
GROUP BY billing_country_id 

С вашего редактирования, кажется, что вам нужно переключить столбцы/псевдоним вокруг:

SELECT billing_postcode AS 'POSTCODE', Title as 'Country', billing_country_id 
FROM [DB].[dbo].[Order] 
INNER JOIN [DB].[dbo].[Country] 
ON country_id = billing_country_id 
+0

Я думал, что это может быть что-то простое, но я получаю вторую ошибку, которую «POSTCODE» и т. Д. ... не является допустимым столбцом имя – DGibbs

+0

@DGibbs - какова ваша структура таблицы? Замените POSTCODE на точное имя столбца –

+0

Извините, я должен был указать на это, я отредактирую вопрос со структурой таблицы. На данный момент 'billing_postcode' и' Title' являются столбцами из 'Order' и' Country'. Выполняя это, я получаю сообщение об ошибке с тем, что столбцы не содержатся в агрегатной функции или группе по – DGibbs

1

ли, как это. Удалите апострофы из имени столбца и вместо этого используйте его в части псевдонима

SELECT POSTCODE as 'billing_postcode', COUNTRY as 'Title', billing_country_id 
FROM [DB].[dbo].[Order] 
INNER JOIN [DB].[dbo].[Country] 
ON country_id = billing_country_id 
GROUP BY billing_country_id 
+0

См. Комментарии на darrens ответ, это делает то же самое – DGibbs