Получение номера заказа, содержащего несколько номеров позиций - PullRequest
0 голосов
/ 18 июня 2019

Я работаю над проектом в SQL Server, где мне нужно выяснить, сколько заказов содержат несколько продуктов. Например, существует порядковый номер 1 и несколько записей 1 для стиля a и одна для стиля b. Мне нужно выяснить, сколько заказов содержат оба стиля (a и b или a и c)

select distinct(ordernumber), Style
from table1
join table2 on join1 = join1
where Style in ('a','b','c')
order by ordernumber

Я рассчитываю перенести данные в Excel, чтобы проанализировать их и посмотреть, сколько ордеров содержит комбинацию, которую я обсуждал.

ordernumber     style
1                 a
1                 b
2                 c
2                 a

Хотелось бы посмотреть, сколько заказов содержит несколько стилей.

1 Ответ

0 голосов
/ 18 июня 2019

Вам необходимо сначала найти номер заказа для нескольких продуктов, а затем найти детали для всех этих идентификаторов заказа.Вы можете проверить приведенный ниже скрипт -

SELECT * FROM Table1 A
INNER JOIN table2 B ON A.<Joining Column> = B.<Joining Column>    
WHERE A.ordernumber IN
( 
    --This query will return Order Numbers that have at least
    --2 style in the order details table
    SELECT C.ordernumber
    FROM table1 C
    INNER JOIN table2 D ON C.<Joining Column> = D.<Joining Column>
    WHERE Style IN ('a','b')
    GROUP BY C.ordernumber
    HAVING COUNT(DISTINCT Style) = 2

    UNION

    SELECT C.ordernumber
    FROM table1 C
    INNER JOIN table2 D ON C.<Joining Column> = D.<Joining Column>
    WHERE Style IN ('a','C')
    GROUP BY C.ordernumber
    HAVING COUNT(DISTINCT Style) = 2
)
...