试图将结果与以前的结果进行比较

时间:2015-06-08 18:43:06

标签: sql-server sql-server-2008 reporting-services

我的任务是撰写一份报告,根据该订单中的订单项提取订单。获得正确的结果后,我将使用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           

1 个答案:

答案 0 :(得分:0)

我相信你使用了错误的联接类型。看看这张图。我一直都在使用这个并且非常有帮助。

enter image description here