我正在使用SQL Server,并且有以下数据:
NO_PO_MYSAP ID_PLANNING_DETAIL ITEM BL
5501 13683 6 2019-11-28
5501 13683 7 2019-11-28
1101 13685 6 2019-12-10
1101 13685 6 2019-12-11
1101 13685 7 2019-12-10
1101 13685 7 2019-12-11
您可以看到它们的编号不同。在同一 NO_PO_MYSAP 下的行数,因为当我选择不同时, 13685 的 BL 具有不同的值。
我想要的是,如果 BL 在相似的 NO_PO_MYSAP 下返回不同的值,我希望将这些值粘贴在一起,这样我仍然可以获得2行数据,如< strong> ID_PLANNING_DETAIL = 13683 (行数取决于 ITEM 的数量,在这种情况下为6和7)。
因此返回数据将如下所示:
NO_PO_MYSAP ID_PLANNING_DETAIL ITEM BL
5501 13683 6 2019-11-28
5501 13683 7 2019-11-28
1101 13685 6 2019-12-10, 2019-12-11
1101 13685 7 2019-12-10, 2019-12-11
答案 0 :(得分:0)
此演示可以为您提供帮助 SQLFiddle
SELECT distinct NO_PO_MYSAP,
ID_PLANNING_DETAIL,
ITEM,
BL = STUFF((SELECT ', ' + bl_date
FROM Table_bl bl -- your table name from bl_date --
WHERE bl.ID = A.ID
FOR XML PATH('')), 1, 2, '')
FROM v_temp_iseecargo_planning A
LEFT JOIN tbl_iseecargo_trx_planning_detail B
ON A.id_planning = B.id_planning AND B.CHANGEID <> 'D'
LEFT JOIN tbl_iseecargo_trx_lifting C
ON A.id_planning = C.id_planning AND C.CHANGEID <> 'D'
LEFT JOIN tbl_iseecargo_trx_lifting_detail D
ON C.id_lifting = D.id_lifting AND D.CHANGEID <> 'D'
LEFT JOIN tbl_iseecargo_md_port E
ON B.id_port_loading = E.id_port AND E.CHANGEID <> 'D'
LEFT JOIN tbl_iseecargo_md_port F
ON B.id_port_discharge = F.id_port AND F.CHANGEID <> 'D'
LEFT JOIN tbl_iseecargo_md_item G
ON B.id_item = G.id_item AND G.CHANGEID <> 'D'
LEFT JOIN tbl_iseecargo_trx_vessel_acceptance H
ON C.id_lifting = H.id_lifting AND H.CHANGEID <> 'D'
LEFT JOIN tbl_iseecargo_md_vessel I
ON H.id_vessel = I.id_vessel AND I.CHANGEID <> 'D'
LEFT JOIN tbl_iseecargo_md_uom J
ON B.id_uom = J.id_uom AND J.CHANGEID <> 'D'
LEFT JOIN tbl_iseecargo_md_shipping_type K
ON id_shipping_type_temp = K.id_shipping_type AND K.CHANGEID <> 'D'
LEFT JOIN (SELECT DISTINCT id_planning_detail,
no_po_mysap
FROM
tbl_iseecargo_trx_procurement_detail
where CHANGEID <> 'D') L
ON b.id_planning_detail = L.id_planning_detail
WHERE A.ID_PLANNING in (13683, 13685) and B.id_uom = '3'
order by ALD_AWAL desc;