我的任务是撰写一份报告,根据该订单中的订单项提取订单。获得正确的结果后,我将使用SSRS为最终用户创建报告。基本上我需要做的是查询具有销售订单号,行项目,日期等的表。每个订单都有多个订单项。他们想知道订单是否有一个名为ASR,SERVICE的订单项,或者他们是否都在那里。
SELECT DISTINCT
arcust.loctid,
sodate,
somast.custno,
somast.sono,
somast.route,
item
FROM
somast
INNER JOIN arcust ON somast.custno = arcust.custno
INNER JOIN sotran ON somast.sono = sotran.sono
WHERE
sodate = '06-04-2015' AND
somast.sostat NOT IN('X','V') AND
route IN ('220','221')
这是我正在使用的,但它正在拉动所有订单项。如果每个订单包含行项ASR或SERVICE,或者两者都没有,那么我如何才能为每个订单提取一个订单项?
以下是该查询的结果:
loctid sodate custno sono route item
OMAHA 2015-06-04 00:00:00.000 10268 4399062 221 10788
OMAHA 2015-06-04 00:00:00.000 10268 4399062 221 SALESDEL
OMAHA 2015-06-04 00:00:00.000 2298 4399308 221 10291
OMAHA 2015-06-04 00:00:00.000 2298 4399308 221 10445
OMAHA 2015-06-04 00:00:00.000 2298 4399308 221 10448
OMAHA 2015-06-04 00:00:00.000 2298 4399308 221 10751
OMAHA 2015-06-04 00:00:00.000 2298 4399308 221 21016
OMAHA 2015-06-04 00:00:00.000 2298 4399308 221 21030
OMAHA 2015-06-04 00:00:00.000 2298 4399308 221 23002
OMAHA 2015-06-04 00:00:00.000 2298 4399308 221 66262
OMAHA 2015-06-04 00:00:00.000 2298 4399308 221 ASR
OMAHA 2015-06-04 00:00:00.000 2513 4399451 221 10329
OMAHA 2015-06-04 00:00:00.000 2513 4399451 221 10520
OMAHA 2015-06-04 00:00:00.000 2513 4399451 221 10910
OMAHA 2015-06-04 00:00:00.000 2513 4399451 221 11010
OMAHA 2015-06-04 00:00:00.000 2513 4399451 221 21772
OMAHA 2015-06-04 00:00:00.000 2513 4399451 221 SALESDEL
OMAHA 2015-06-04 00:00:00.000 514 4399287 221 11437
OMAHA 2015-06-04 00:00:00.000 514 4399287 221 SERVICE
OMAHA 2015-06-04 00:00:00.000 8449 4399314 221 30405
我希望看到这样:
loctid sodate custno sono route item
OMAHA 2015-06-04 00:00:00.000 10268 4399062 221 SALESDEL
OMAHA 2015-06-04 00:00:00.000 2298 4399308 221 ASR
OMAHA 2015-06-04 00:00:00.000 2513 4399451 221 10329
OMAHA 2015-06-04 00:00:00.000 514 4399287 221 SERVICE
OMAHA 2015-06-04 00:00:00.000 8449 4399314 221 30405
答案 0 :(得分:0)
我相信你使用了错误的联接类型。看看这张图。我一直都在使用这个并且非常有帮助。