Sql 如何查询此表以获取此结果集
我有这个疑问Sql 如何查询此表以获取此结果集,sql,sql-server-2008-r2,Sql,Sql Server 2008 R2,我有这个疑问 select a.ord_no,a.item_no, a.line_no, b.from_item_no_1,b.qty_1, b.from_item_no_2,b.qty_2, b.from_item_no_3, b.qty_3,b.from_item_no_4,b.qty_4 from oeordlin_progview a join oepiklst_sql b on a.ord_no = b.ord_no and a.li
select a.ord_no,a.item_no, a.line_no, b.from_item_no_1,b.qty_1, b.from_item_no_2,b.qty_2, b.from_item_no_3, b.qty_3,b.from_item_no_4,b.qty_4 from oeordlin_progview a
join oepiklst_sql b on a.ord_no = b.ord_no and a.line_no = b.line_seq_no
WHERE a.ord_type = 'O'
AND a.loc = '1'
AND a.picked_dt IS NULL
AND a.line_item_status = 'FRFIN'
and a.ord_no = 410672
order by a.line_no
返回这个结果集
ord_no item_no line_no from_item_no_1 qty_1 from_item_no_2 qty_2 from_item_no_3 qty_3 from_item_no_4 qty_4
00410672 12167 2 1 1.0000 2 5.0000 3 9.0000 4 13.0000
00410672 10 3 10000 1.0000 2 6.0000 3 12.0000 4 3.0000
00410672 2 4 1 1.0000 2 7.0000 3 2.0000 4 2.0000
对于每个项目编号,我如何使其看起来像这样
-------item_No 12167
ord_no, item_no, line_no, 1, from_item_no_1, qty_1
ord_no, item_no, line_no, 2, from_item_no_2, qty_2
ord_no, item_no, line_no, 3, from_item_no_3, qty_3
ord_no, item_no, line_no, 4, from_item_no_4, qty_4
-------item_No 10
-------item_No 2
我可以这样做,但它是混乱的
select a.ord_no, a.item_no,a.line_no,1, b.from_item_no_1,b.qty_1 from oeordlin_progview a
join oepiklst_sql b on a.ord_no = b.ord_no and a.line_no = b.line_seq_no
WHERE a.ord_type = 'O'
AND a.loc = '1'
AND a.picked_dt IS NULL
AND a.line_item_status = 'FRFIN'
and a.ord_no = 410672
union all
select a.ord_no, a.item_no,a.line_no,2, b.from_item_no_2,b.qty_2 from oeordlin_progview a
join oepiklst_sql b on a.ord_no = b.ord_no and a.line_no = b.line_seq_no
WHERE a.ord_type = 'O'
AND a.loc = '1'
AND a.picked_dt IS NULL
AND a.line_item_status = 'FRFIN'
and a.ord_no = 410672
union all
select a.ord_no, a.item_no,a.line_no,3, b.from_item_no_3, b.qty_3 from oeordlin_progview a
join oepiklst_sql b on a.ord_no = b.ord_no and a.line_no = b.line_seq_no
WHERE a.ord_type = 'O'
AND a.loc = '1'
AND a.picked_dt IS NULL
AND a.line_item_status = 'FRFIN'
and a.ord_no = 410672
union all
select a.ord_no, a.item_no,a.line_no,4,b.from_item_no_4,b.qty_4 from oeordlin_progview a
join oepiklst_sql b on a.ord_no = b.ord_no and a.line_no = b.line_seq_no
WHERE a.ord_type = 'O'
AND a.loc = '1'
AND a.picked_dt IS NULL
AND a.line_item_status = 'FRFIN'
and a.ord_no = 410672
order by line_no
听起来你需要使用unpivot所以。。。oepiklst_sql表中的每个数字都有单独的列,从_item_no_'?或仅一列用于“从项目编号”和“数量”?分开。。。。。。。。。。。。。。。。