首页 > 解决方案 > 消息 1013,第 16 级,状态 1,第 1 行

问题描述

我收到此错误:

消息 1013,级别 16,状态 1,第 1 行 FROM 子句中的对象“MstSalesChallanItemDetails”和“MstSalesChallanItemDetails”具有相同的公开名称。使用相关名称来区分它们。

我的声明:

Select     MstSalesInvoice.SalesInvoiceDate 
from       MstSalesChallanItemDetails
INNER JOIN MstSalesChallanItemDetails ON  MstSalesInvoiceItemDetails.SalesChallanId = MstSalesChallanItemDetails.SalesChallanId 
INNER JOIN MstSalesInvoiceItemDetails ON  MstSalesInvoice.SalesInvoiceId=MstSalesInvoiceItemDetails.SalesInvoiceId
INNER JOIN MstSalesChallan            ON  MstSalesChallanItemDetails.SalesChallanId = MstSalesChallan.SalesChallanId 
                                      AND MstSalesChallanItemDetails.SalesChallanId = MstSalesChallan.SalesChallanId
WHERE      MstSalesChallan.YearId    = 7 
AND        MstSalesChallan.CompanyId = 1

标签: sql-server

解决方案


指定表别名

SELECT MstInv.SalesInvoiceDate 
FROM MstSalesChallanItemDetails AS MstSal INNER JOIN 
     MstSalesInvoiceItemDetails AS MstInv 
     ON MstInv.SalesInvoiceId = MstSal.SalesInvoiceId INNER JOIN 
     MstSalesChallan MstCh 
     ON MstSal.SalesChallanId = MstCh.SalesChallanId 
WHERE  MstCh.YearId = 7 AND MstCh.CompanyId = 1;

注意:您多次重复相同的表达式。所以,不需要这样做。


推荐阅读