Sql 税率(增值税税率)的AS条款应该放在哪里

Sql 税率(增值税税率)的AS条款应该放在哪里,sql,sql-server,tsql,Sql,Sql Server,Tsql,我想在这个SELECT语句中输入增值税税率,但我不知道在哪里 SELECT ROW_NUMBER() OVER(ORDER BY QD.DETAIL_ID) AS No, QD.PRODUCT_ID AS PROD_ID,PM.'+@ProdCode+' AS PROD_CODE,pm.DESCRIPTION AS SHORT_DESC, QD.CORPORATE_PRICE AS Corpo_Price,CONVERT(DECIMAL(18,2),QD.RETAIL_PRICE)

我想在这个SELECT语句中输入增值税税率,但我不知道在哪里

SELECT ROW_NUMBER() OVER(ORDER BY QD.DETAIL_ID) AS No,  
 QD.PRODUCT_ID AS PROD_ID,PM.'+@ProdCode+' AS PROD_CODE,pm.DESCRIPTION AS SHORT_DESC,  
 QD.CORPORATE_PRICE AS Corpo_Price,CONVERT(DECIMAL(18,2),QD.RETAIL_PRICE) AS UNIT_SP,QD.COST_PRICE AS COST_SP,  
 QD.GM,QD.DETAIL_ID,QD.DISC AS Discount,QD.NOTE,

    VAT_RATE=(SELECT VAT_RATE/100 FROM dbo.vat   
    WHERE VAT_ID=(SELECT TOP 1 VAT_ID FROM dbo.product_detail(NOLOCK) WHERE PRODUCT_ID=PM.PROD_ID))

,  
   Img=(SELECT TOP 1 IMAGE_DATA FROM dbo.PRODUCT_IMAGE WHERE PRODUCT_ID=PM.PROD_ID), QD.CostPrice_Percentage  
 FROM dbo.CUSTOMER_QUOTATION_DETAIL(NOLOCK) QD  
 JOIN dbo.product_master(NOLOCK) PM ON PM.PROD_ID=QD.PRODUCT_ID

在TSQL中,有3种方法可以命名列

1) 使用AS(tsql中可选)

2) 没有AS(因为它是可选的)

3) 用一个等号,好像它是一个公式

SELECT PROD_ID = QD.PRODUCT_ID 
FROM dbo.CUSTOMER_QUOTATION_DETAIL(NOLOCK) QD  
特别是对于您的查询,这是AS应该去的地方。 您必须删除equal,并将AS放在子查询的末尾

请注意,您在查询中存在各种其他问题,这些问题超出了原始问题的范围。如果遇到性能问题,请调查交叉应用/交叉外部联接和/或CTE:公共表表达式

SELECT ROW_NUMBER() OVER (
        ORDER BY QD.DETAIL_ID
        ) AS No
    , QD.PRODUCT_ID AS PROD_ID
    --, PM.'+@ProdCode+' AS PROD_CODE
    , @ProdCode AS PROD_CODE
    , pm.DESCRIPTION AS SHORT_DESC
    , QD.CORPORATE_PRICE AS Corpo_Price
    , CONVERT(DECIMAL(18, 2), QD.RETAIL_PRICE) AS UNIT_SP
    , QD.COST_PRICE AS COST_SP
    , QD.GM
    , QD.DETAIL_ID
    , QD.DISC AS Discount
    , QD.NOTE
    , (
        SELECT TOP 1 (VAT_RATE / 100)
        FROM dbo.vat
        WHERE VAT_ID = (
                SELECT TOP 1 VAT_ID
                FROM dbo.product_detail(NOLOCK)
                WHERE PRODUCT_ID = PM.PROD_ID
                )
        ) AS VAT_RATE
    ,   (
        SELECT TOP 1 IMAGE_DATA
        FROM dbo.PRODUCT_IMAGE
        WHERE PRODUCT_ID = PM.PROD_ID
        ) AS Img
    , QD.CostPrice_Percentage
FROM dbo.CUSTOMER_QUOTATION_DETAIL(NOLOCK) QD
JOIN dbo.product_master(NOLOCK) PM
    ON PM.PROD_ID = QD.PRODUCT_ID

你已经有了一个名为“增值税税率”的栏目,所以这是行不通的。别再在代码中乱扔东西了。只有当您了解后果、已实现逻辑以处理可能导致的其他错误并且有明确的使用需求时,才可以使用它们。
SELECT PROD_ID = QD.PRODUCT_ID 
FROM dbo.CUSTOMER_QUOTATION_DETAIL(NOLOCK) QD  
SELECT ROW_NUMBER() OVER (
        ORDER BY QD.DETAIL_ID
        ) AS No
    , QD.PRODUCT_ID AS PROD_ID
    --, PM.'+@ProdCode+' AS PROD_CODE
    , @ProdCode AS PROD_CODE
    , pm.DESCRIPTION AS SHORT_DESC
    , QD.CORPORATE_PRICE AS Corpo_Price
    , CONVERT(DECIMAL(18, 2), QD.RETAIL_PRICE) AS UNIT_SP
    , QD.COST_PRICE AS COST_SP
    , QD.GM
    , QD.DETAIL_ID
    , QD.DISC AS Discount
    , QD.NOTE
    , (
        SELECT TOP 1 (VAT_RATE / 100)
        FROM dbo.vat
        WHERE VAT_ID = (
                SELECT TOP 1 VAT_ID
                FROM dbo.product_detail(NOLOCK)
                WHERE PRODUCT_ID = PM.PROD_ID
                )
        ) AS VAT_RATE
    ,   (
        SELECT TOP 1 IMAGE_DATA
        FROM dbo.PRODUCT_IMAGE
        WHERE PRODUCT_ID = PM.PROD_ID
        ) AS Img
    , QD.CostPrice_Percentage
FROM dbo.CUSTOMER_QUOTATION_DETAIL(NOLOCK) QD
JOIN dbo.product_master(NOLOCK) PM
    ON PM.PROD_ID = QD.PRODUCT_ID