Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.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
SQL查询-理解我的查询中的错误_Sql_Sql Server - Fatal编程技术网

SQL查询-理解我的查询中的错误

SQL查询-理解我的查询中的错误,sql,sql-server,Sql,Sql Server,我有一个查询-我需要帮助返回更多的列 我需要返回的是 OrderHeader.receiver OrderHeader.receiver_name 1 订单详细信息。数量 发货日期 托运。意味着估计的成本 以下是我目前掌握的代码: WITH cte AS ( SELECT Consignments.consignment_number, UserReferences.value, Consignments.despatch_date FRO

我有一个查询-我需要帮助返回更多的列

我需要返回的是

  • OrderHeader.receiver
  • OrderHeader.receiver_name 1
  • 订单详细信息。数量
  • 发货日期
  • 托运。意味着估计的成本
以下是我目前掌握的代码:

WITH cte AS
(
    SELECT 
        Consignments.consignment_number, UserReferences.value, 
        Consignments.despatch_date
    FROM 
        Consignments
    INNER JOIN 
        OrderDetail ON Consignments.consignment_id = OrderDetail.consignment_id
    INNER JOIN 
        OrderHeader ON OrderDetail.order_id = OrderHeader.order_id
    INNER JOIN 
        UserReferences ON OrderDetail.record_id = UserReferences.record_id
    WHERE 
        Consignments.despatch_date = '2020-04-24'
)
SELECT
    '11' AS RecordType, t.consignment_number,
    '' AS ' ', '' AS ' ', '' AS ' ', '' AS ' ', 
    STUFF((SELECT ', ' + CONVERT(varchar(255), t1.value)
           FROM cte t1 
           WHERE t1.consignment_number = t.consignment_number
           FOR XML PATH('')), 1, 1, '') AS senders_reference
FROM
    (SELECT DISTINCT consignment_number FROM cte t) t;
我曾尝试将所需列添加到SELECT中,但在添加时出现错误,例如:

Msg 4104,16级,状态1,第12行
无法绑定多部分标识符“OrderHeader.receiver_index”


如果您对此有任何帮助,我们将不胜感激。

缺少的字段应与
cte一起出现。

WITH cte AS
(     SELECT Consignments.consignment_number, 
             UserReferences.value, Consignments.despatch_date,
             OrderHeader.receiver, OrderHeader.receiver_name1
             OrderDetail.quantity, Consignments.despatch_date
             Consignments.connote_estimated_cost
       FROM Consignments INNER JOIN 
            OrderDetail 
            ON Consignments.consignment_id = OrderDetail.consignment_id INNER JOIN 
            OrderHeader 
            ON OrderDetail.order_id = OrderHeader.order_id INNER JOIN 
            UserReferences 
            ON OrderDetail.record_id = UserReferences.record_id
       WHERE Consignments.despatch_date = '2020-04-24'
)
SELECT DISTINCT '11' AS RecordType, t.*,
       '' AS ' ', '' AS ' ', '' AS ' ', '' AS ' ', 
       STUFF((SELECT DISTINCT ', ' + CONVERT(varchar(255), t1.value)
              FROM cte t1 
              WHERE t1.consignment_number = t.consignment_number
              FOR XML PATH('')
             ), 1, 1, '') AS senders_reference
FROM CTE t;

该查询生成该错误的唯一方法是其中一个“表”实际上是一个视图,而该视图有一个错误。但是,我怀疑您已经简化了查询并找出了错误的来源。请确保此处显示的查询实际生成您引用的错误消息。这是完整的错误消息消息4104,级别16,状态1,第12行。无法绑定多部分标识符“OrderHeader.receiver_index”。您的查询中是否有
视图
?第12行未提及该标识符。请编辑您的问题,以实际显示实际生成该消息的实际代码!不幸的是,现在UserReferences.value在第一个SELECT语句中-我遇到了我的原始问题,有多行具有相同的寄售编号。。。有没有办法删除第二列中对UserReferences.value的第一个引用,并在末尾保留senders\u引用列?