2015-06-08 2 views
0

Мне поручено написать отчет, который тянет заказы в соответствии с позициями в этом порядке. Как только я получу правильные результаты, я буду использовать 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

JamesZ - Я этого нужно просто хочу, чтобы тянуть линию, которая имеет ASR или SERVICE или если ни один не в порядке, то я хотел бы, чтобы как-то знать, что ни один не в порядке – user3394606

+0

В ваших желаемых результатов, почему у custno 10268 есть SALESDEL, но у 2513 есть «10329», когда SALESDEL является одним из предметов? В любом случае вы должны будете делать то, что хотите, с помощью оператора CASE WHEN EXISTS(). –

ответ

0

Я считаю, что вы использованияКонтактная неправильный тип соединения. Взгляните на этот график. Я использую это все время и очень полезен.

enter image description here

Смежные вопросы