Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
conversiontype的SQL Server查询错误_Sql_Sql Server - Fatal编程技术网

conversiontype的SQL Server查询错误

conversiontype的SQL Server查询错误,sql,sql-server,Sql,Sql Server,我在SQL Server中得到一个代码错误 SQL代码: SELECT DISTINCT HEADER.PONUMBER, SName, CompanyName FROM HEADER INNER JOIN PDetails ON HEADER.PONUMBER = PDetails.PoNumber INNER JOIN FAN_P ON PDetails.PurchaseOrderID = FAN_P.PurchaseOrde

我在SQL Server中得到一个代码错误

SQL代码:

SELECT DISTINCT  
    HEADER.PONUMBER, 
    SName,
    CompanyName
FROM 
    HEADER 
INNER JOIN 
    PDetails  ON HEADER.PONUMBER = PDetails.PoNumber 
INNER JOIN 
    FAN_P ON PDetails.PurchaseOrderID = FAN_P.PurchaseOrderID      
错误消息:

将varchar值“PO321211”转换为数据类型int时,转换失败

你能帮我拿这个吗

谢谢

检查的数据类型

HEADER.PONUMBER
Details.PoNumber

像这样

SELECT DISTINCT HEADER.PONUMBER,SName,CompanyName
           FROM HEADER
     INNER JOIN PDetails 
             ON HEADER.PONUMBER = concat(PDetails.PoNumber, '') 
     INNER JOIN FAN_P 
             ON PDetails.PurchaseOrderID = FAN_P.PurchaseOrderID


错误很明显。您正在尝试将and
INT
列与
VARCHAR
列进行比较。为了缓解这种情况,您可以将比较转换为varchar。我都做了,因为我不知道是哪一个导致了错误。。。但它是包含
PO321211
的列:)


你好,Christian,HEADER.PONUMBER是VARCHAR2,DETAILS.PONUMBER是INT。试着在join中使用HEADER.PONUMBER=concat(PDetails.PONUMBER,'')你能详细说明一下吗?感谢这样从HEADER上的HEADER内部连接PDetails中选择不同的HEADER.PONUMBER、SName、CompanyName。PONUMBER=concat(PDetails.PONUMBER“”)PDetails上的内部连接FAN_P。PurchaseOrderID=FAN_P.PurchaseOrderID检查编辑过的答案这不起作用,从HEADER上的HEADER内部联接PDetails中选择DISTINCT HEADER.PONUMBER、SName、CompanyName。PONUMBER=concat(“PO”,PDetails.PONUMBER”)PDetails.PurchaseOrderID=FAN\P.PurchaseOrderID上的内部联接FAN\P
SELECT DISTINCT HEADER.PONUMBER,SName,CompanyName
           FROM HEADER
     INNER JOIN PDetails 
             ON HEADER.PONUMBER = concat(PDetails.PoNumber, '') 
     INNER JOIN FAN_P 
             ON PDetails.PurchaseOrderID = FAN_P.PurchaseOrderID
SELECT DISTINCT HEADER.PONUMBER, SName, CompanyName 
           FROM HEADER
     INNER JOIN PDetails 
             ON HEADER.PONUMBER = concat('PO',PDetails.PoNumber) 
     INNER JOIN FAN_P 
             ON PDetails.PurchaseOrderID = FAN_P.PurchaseOrderID 
SELECT  DISTINCT  HEADER.PONUMBER, 
                  SName,
                  CompanyName
FROM HEADER INNER JOIN PDetails 
ON CAST(HEADER.PONUMBER AS VARCHAR(128)) = CAST(PDetails.PoNumber AS VARCHAR(128))
INNER JOIN FAN_P ON CAST(PDetails.PurchaseOrderID AS VARCHAR(128)) = CAST(FAN_P.PurchaseOrderID AS VARCHAR(128))