SQL Server не равен запросу, возвращающему равные значения

user3496218 спросил: 03 февраля 2018 в 11:53 в: sql

У меня есть запрос ниже, который сравнивает два связанных набора данных, ищущих строки, где сумма qty из одного набора не совпадает с другой. Для справки один набор данных основан на PO (MRP), а один - на основе SO (ARUN), но они связаны с номерами PO и SO, а также с материалом, элементом заказа клиента и т. Д. Запрос выполняется нормально, но результаты показывают равные ценности, на которых я нацелен, - это вызывать там, где они НЕ равны. Я добавлю, что нормальный вывод этого без использования SUM возвращает двойные строки, так как каждый набор данных имеет эти итоговые значения, разделенные на две строки (отгрузки были разделены, поэтому имеют разные номера контейнеров). Моя цель состояла в том, чтобы избавиться от этого с помощью функции SUM и исключить это уникальное поле, таким образом, агрегируя ранее. Любые идеи, что может произойти? Я включил код, а также результаты с SUM и ранее. поэтому в ARUN может быть уникальный номер контейнера, а также в MRP может быть уникальная строка расписания

Код:

SELECT 
       M.STOCK_NUMBER AS [PO_NUMBER],
       M.MATERIAL, 
       M.MATERIAL_DESCRIPTION, 
       M.SIZE_LITERAL,
       A.GRID_VALUE,
       SUM(M.QUANTITY) AS [PO_QTY],
       SUM(A.QUANTITY) AS [SO_QTY],
       M.SALES_ORDER_NUMBER, 
       M.SALES_ORDER_ITEM_NUMBER, 
       M.CUSTOMER_NAME, 
       M.PLANNED_RECEIPT_DATE AS [ETA], 
       M.PLANT_CODE, 
       M.STOCK_TYPEFROM   VW_MRP_ALLOCATION M
JOIN   VW_ARUN_NORM_NEW A   
ON     M.SALES_ORDER_NUMBER = A.SALES_ORDER_NUMBER
AND    M.SALES_ORDER_ITEM_NUMBER = A.SALES_ORDER_ITEM_NUMBER
AND    M.STOCK_NUMBER = A.SAP_PO_NUMBER
AND    M.SIZE_LITERAL = A.GRID_VALUE
AND    M.STOCK_TYPE = A.STOCK_TYPE
AND    M.MATERIAL = A.MATERIAL_NUMBERWHERE  M.REQUIREMENT_TYPE = 'KE'
AND    M.STOCK_TYPE NOT IN ('A','C')
AND    M.STOCK_NUMBER IS NOT NULL
AND    M.QUANTITY <> A.QUANTITYGROUP BY M.STOCK_NUMBER,
       M.MATERIAL, 
       M.MATERIAL_DESCRIPTION, 
       M.SIZE_LITERAL, 
       M.SALES_ORDER_NUMBER, 
       M.SALES_ORDER_ITEM_NUMBER, 
       M.CUSTOMER_NAME, 
       M.PLANNED_RECEIPT_DATE,
       M.PLANT_CODE, 
       M.STOCK_TYPE,
       A.GRID_VALUEORDER BY  M.STOCK_NUMBER,
          M.SIZE_LITERAL ASC

Этот код приводит к следующему: (образец строки):

PO_NUMBER    MATERIAL           MATERIAL_DESCRIPTION                     SIZE_LITERAL GRID_VALUE PO_QTY                                  SO_QTY                                  SALES_ORDER_NUMBER SALES_ORDER_ITEM_NUMBER                 CUSTOMER_NAME                       ETA                     PLANT_CODE STOCK_TYPE
------------ ------------------ ---------------------------------------- ------------ ---------- --------------------------------------- --------------------------------------- ------------------ --------------------------------------- ----------------------------------- ----------------------- ---------- ----------
0283472626   D93889             ADI STAIRS MEN      BLACK                L            L          400                                     400                                     6194114805         10                                      ROSS STORES INC                     2018-02-28 00:00:00.000 6010       L
0283472626   D93889             ADI STAIRS MEN      BLACK                M            M          400                                     400                                     6194114805         10                                      ROSS STORES INC                     2018-02-28 00:00:00.000 6010       L
0283472626   D93889             ADI STAIRS MEN      BLACK                S            S          200                                     200                                     6194114805         10                                      ROSS STORES INC                     2018-02-28 00:00:00.000 6010       L
0283472626   D93889             ADI STAIRS MEN      BLACK                XL           XL         200                                     200                                     6194114805         10                                      ROSS STORES INC                     2018-02-28 00:00:00.000 6010       L

Если я удалю SUM и добавлю QUANTITY в группу, я получаю следующее:

PO_NUMBER    MATERIAL           MATERIAL_DESCRIPTION                     SIZE_LITERAL GRID_VALUE PO_QTY                                  SO_QTY                                  SALES_ORDER_NUMBER SALES_ORDER_ITEM_NUMBER                 CUSTOMER_NAME                       ETA                     PLANT_CODE STOCK_TYPE
------------ ------------------ ---------------------------------------- ------------ ---------- --------------------------------------- --------------------------------------- ------------------ --------------------------------------- ----------------------------------- ----------------------- ---------- ----------
0283472626   D93889             ADI STAIRS MEN      BLACK                L            L          28                                      372                                     6194114805         10                                      ROSS STORES INC                     2018-02-28 00:00:00.000 6010       L
0283472626   D93889             ADI STAIRS MEN      BLACK                L            L          372                                     28                                      6194114805         10                                      ROSS STORES INC                     2018-02-28 00:00:00.000 6010       L
0283472626   D93889             ADI STAIRS MEN      BLACK                M            M          28                                      372                                     6194114805         10                                      ROSS STORES INC                     2018-02-28 00:00:00.000 6010       L
0283472626   D93889             ADI STAIRS MEN      BLACK                M            M          372                                     28                                      6194114805         10                                      ROSS STORES INC                     2018-02-28 00:00:00.000 6010       L
0283472626   D93889             ADI STAIRS MEN      BLACK                S            S          14                                      186                                     6194114805         10                                      ROSS STORES INC                     2018-02-28 00:00:00.000 6010       L
0283472626   D93889             ADI STAIRS MEN      BLACK                S            S          186                                     14                                      6194114805         10                                      ROSS STORES INC                     2018-02-28 00:00:00.000 6010       L
0283472626   D93889             ADI STAIRS MEN      BLACK                XL           XL         14                                      186                                     6194114805         10                                      ROSS STORES INC                     2018-02-28 00:00:00.000 6010       L
0283472626   D93889             ADI STAIRS MEN      BLACK                XL           XL         186                                     14                                      6194114805         10                                      ROSS STORES INC                     2018-02-28 00:00:00.000 6010       L


0 ответов