Как я могу использовать подзапрос в качестве псевдонима в SQL Server 2005 - PullRequest
1 голос
/ 19 марта 2010

Это мой код. Это дает мне ошибку.

select 
b.bill_no as 'Bill Number',
(select descript from SALE_TERMS where STERMS_CODE='99')=b.[99]
from BILLDET as b

Ответы [ 3 ]

2 голосов
/ 19 марта 2010

Почему бы просто:

SELECT
   b.bill_no as 'Bill Number',
   (SELECT descript FROM SALE_TERMS WHERE STERMS_CODE = '99') AS 'Code99'
FROM
   BILLDET as b
1 голос
/ 19 марта 2010

Ваш пример почти верен, за исключением присваивания, это должен быть оператор "AS", содержащий имя столбца. Также полезно использовать TOP 1 в вашем подзапросе, если значение STERMS_CODE не уникально:

SELECT
b.bill_no AS 'Bill Number',
(SELECT TOP 1 descript from SALE_TERMS WHERE STERMS_CODE='99') AS [99]
FROM BILLDET AS b
1 голос
/ 19 марта 2010
SELECT
   b.bill_no as 'Bill Number',
   ST.[99]
FROM
   BILLDET as b
   CROSS JOIN
   (SELECT descript AS [99] FROM SALE_TERMS WHERE STERMS_CODE = '99') ST

или вы имеете в виду это?

SELECT
   b.bill_no as 'Bill Number',
   ST.descript
FROM
   BILLDET as b
   JOIN
   SALE_TERMS st ON b.[99] = ST.STERMS_CODE
WHERE
   ST.STERMS_CODE = '99'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...