【发布时间】:2017-04-14 00:02:12
【问题描述】:
我正在处理一个报告查询,它需要显示包含 p 类型项目和其他非 p 项目的订单(非 P 项目是 50 个项目),他们想要结合这两种类型项目的订单详细信息
以下是我准备的查询,但此查询还显示未与非 p 项目组合的 ptype 订单。
SELECT
vwOrD.ONUMBER,
vwOrD.ITEMID,
vwITEMs.cat,
vwITEMs.id
FROM vwITEMs
INNER JOIN vwOrD
ON vwITEMs.ITEMID = vwOrD.ITEMID
INNER JOIN vwOrders
ON vwOrD.ONUMBER = vwOrders.ONUMBER
WHERE vwOrders.CUSTID = 'test'
AND vwOrders.CREATEDATE >= '1-1-2016'
AND vwOrders.CREATEDATE <= '11-28-2016'
AND vwOrD.ONUMBER IN
(SELECT vwOrD.ONUMBER
FROM vwOrD
INNER JOIN vworders
ON vwOrD.ONUMBER = vwOrders.ONUMBER
INNER JOIN vwITEMs
ON vwITEMs.ASCITEMID = vwOrD.ASCITEMID
WHERE vwOrders.SOLDTOCUSTID = 'test'
AND vwITEMs.cat = N'PI' -- Pitems cat= pi, id = c
AND vwITEMs.id = 'C'
AND vwOrders.CREATEDATE >= '1-1-2016'
AND vwOrders.CREATEDATE <= '11-28-2016' --group by vwOrD.ONUMBER
-- having count(1) > 1
)
ORDER BY
vwOrD.ONUMBER
生成的示例输出:
ornumber idnum categ id id
12 xxx pi c
12 xxx nonpi c
11 yyy pi c
10 qqq pi c
预期结果
12 xxx pi c
12 xxx nonpi c
【问题讨论】:
-
您好,欢迎来到 SO。为了提供帮助,我们需要更多细节。这是一个很好的起点。 spaghettidba.com/2015/04/24/…
标签: sql sql-server plsql plsqldeveloper