SQL Server 2008: оператор объединения выдает неверные результаты

Я пытаюсь объединить эти две таблицы

Таблица Продукт :

+-------------+-------------+-------------------------------------------+----------------------+----------+-------+------------+-------+------------------------+----------+-------+-------+-------------------------------------------+----------------------+------------+-------+----------+----------+--------+--------+---------------+----------+------------+------------+---------------+---------------+--------+--------+------------------+---------+---------------+--------+------------+----------+------------+----------+-------------+------------+-------------------+-------------------+
| Id_Sucursal | Id_Producto |              Clave_Eq_Sisco               |      Num_Serie       | No_Parte |  OEM  | Cod_Barras | Marca |         Modelo         | Original | Linea | Nuevo |                Descr_Larga                |     Descr_Corta      | Existencia | Costo | Impuesto | Utilidad | Precio | Oferta | Precio_Oferta | Cantidad |  F_Inicio  |   F_Fin    | Precio_Maximo | Precio_Minimo | Maximo | Minimo | Compatibilidades | Estatus | Observaciones | Codigo |   F_Alta   | Usr_Alta |   F_Baja   | Usr_Baja | rendimiento | estatus_oc | porcentaje_maximo | porcentaje_minimo |
+-------------+-------------+-------------------------------------------+----------------------+----------+-------+------------+-------+------------------------+----------+-------+-------+-------------------------------------------+----------------------+------------+-------+----------+----------+--------+--------+---------------+----------+------------+------------+---------------+---------------+--------+--------+------------------+---------+---------------+--------+------------+----------+------------+----------+-------------+------------+-------------------+-------------------+
| CORDOBA     |        1219 | TORCSAMSAN0000001219                      | 28837                |          | 28837 | 28837      | SAMS  |                        | A        | TORC  | N     | TONER BOTELLA ALTERNO 220G                |                      |         43 |     0 |       16 |        0 |      0 | N      |             0 |        0 | 12/03/2013 | 12/03/2013 |             0 |             0 |      0 |      0 |                  | A       |               |        | 12/03/2013 | COMPRAS  | 01/01/1900 |          |        5000 |            |                 0 |                 0 |
| TEHUACAN    |        1219 | TORCSAMSAN0000001219                      | 28837                |          | 28837 | 28837      | SAMS  |                        | A        | TORC  | N     | TONER BOTELLA ALTERNO 220G                |                      |         31 |     0 |       16 |        0 |      0 | N      |             0 |        0 | 12/03/2013 | 12/03/2013 |             0 |             0 |      0 |      0 |                  | A       |               |        | 12/03/2013 | COMPRAS  | 01/01/1900 |          |        5000 |            |                 0 |                 0 |
| XALAPA      |        1219 | TORCSAMSAN0000001219                      | 28837                |          | 28837 | 28837      | SAMS  |                        | A        | TORC  | N     | TONER BOTELLA ALTERNO 220G                |                      |         10 |     0 |       16 |        0 |      0 | N      |             0 |        0 | 12/03/2013 | 12/03/2013 |             0 |             0 |      0 |      0 |                  | A       |               |        | 12/03/2013 | COMPRAS  | 01/01/1900 |          |        5000 |            |                 0 |                 0 |
| CORDOBA     |         612 | TORCHEPAAN0000000612                      | 32385                |          | 32385 | 32385      | HEPA  | LASER JET-1012         | A        | TORC  | N     | TONER RECARGA GENERICO  100 G HP          |                      |          1 |     0 |       16 |        0 |      0 | N      |             0 |        0 | 18/12/2012 | 18/12/2012 |             0 |             0 |      0 |      0 |                  | A       |               |        | 18/12/2012 | SUP      | 01/01/1900 |          |           0 |            |                 0 |                 0 |
| TEHUACAN    |         612 | TORCHEPAAN0000000612                      | 32385                |          | 32385 | 32385      | HEPA  | LASER JET-1012         | A        | TORC  | N     | TONER RECARGA GENERICO  100 G HP          |                      |          8 |     0 |       16 |        0 |      0 | N      |             0 |        0 | 18/12/2012 | 18/12/2012 |             0 |             0 |      0 |      0 |                  | A       |               |        | 18/12/2012 | SUP      | 01/01/1900 |          |           0 |            |                 0 |                 0 |
| XALAPA      |         612 | TORCHEPAAN0000000612                      | 32385                |          | 32385 | 32385      | HEPA  | LASER JET-1012         | A        | TORC  | N     | TONER RECARGA GENERICO  100 G HP          |                      |         11 |     0 |       16 |        0 |      0 | N      |             0 |        0 | 18/12/2012 | 18/12/2012 |             0 |             0 |      0 |      0 |                  | A       |               |        | 18/12/2012 | SUP      | 01/01/1900 |          |           0 |            |                 0 |                 0 |
| CORDOBA     |         717 | TORCKATUAN0000000717                      | 37069                | 37069    | 37069 | 37069      | SHAR  | AL-2031                | A        | TORC  | N     | TONER  RECARGA GENERICO  240 G  SHARP     |                      |          8 |     0 |       16 |        0 |      0 | N      |             0 |        0 | 20/12/2012 | 20/12/2012 |             0 |             0 |      0 |      0 |                  | A       |               |        | 20/12/2012 | SUP      | 01/01/1900 |          |        5000 |            |                 0 |                 0 |
| TEHUACAN    |         717 | TORCKATUAN0000000717                      | 37069                | 37069    | 37069 | 37069      | SHAR  | AL-2031                | A        | TORC  | N     | TONER  RECARGA GENERICO  240 G  SHARP     |                      |         15 |     0 |       16 |        0 |      0 | N      |             0 |        0 | 20/12/2012 | 20/12/2012 |             0 |             0 |      0 |      0 |                  | A       |               |        | 20/12/2012 | SUP      | 01/01/1900 |          |        5000 |            |                 0 |                 0 |
| XALAPA      |         717 | TORCKATUAN0000000717                      | 37069                | 37069    | 37069 | 37069      | SHAR  | AL-2031                | A        | TORC  | N     | TONER  RECARGA GENERICO  240 G  SHARP     |                      |         11 |     0 |       16 |        0 |      0 | N      |             0 |        0 | 20/12/2012 | 20/12/2012 |             0 |             0 |      0 |      0 |                  | A       |               |        | 20/12/2012 | SUP      | 01/01/1900 |          |        5000 |            |                 0 |                 0 |
| CORDOBA     |        1023 | TORCKATUAN0000001023                      | TK-1147-172--137-162 | 44259    | 44259 | 29458      | KYMI  |                        | A        | TORC  | N     | TONER  RECARGA GENERICO 290GR. KYOCERA    |                      |         19 |     0 |       16 |        0 |      0 | N      |             0 |        0 | 17/01/2013 | 17/01/2013 |             0 |             0 |      0 |      0 |                  | A       |               |        | 17/01/2013 | SUP      | 01/01/1900 |          |        7000 |            |                 0 |                 0 |
| TEHUACAN    |        1023 | TORCKATUAN0000001023                      | TK-1147-172--137-162 | 44259    | 44259 | 29458      | KYMI  |                        | A        | TORC  | N     | TONER  RECARGA GENERICO 290GR. KYOCERA    |                      |         27 |     0 |       16 |        0 |      0 | N      |             0 |        0 | 17/01/2013 | 17/01/2013 |             0 |             0 |      0 |      0 |                  | A       |               |        | 17/01/2013 | SUP      | 01/01/1900 |          |        7000 |            |                 0 |                 0 |
| XALAPA      |        1023 | TORCKATUAN0000001023                      | TK-1147-172--137-162 | 44259    | 44259 | 29458      | KYMI  |                        | A        | TORC  | N     | TONER  RECARGA GENERICO 290GR. KYOCERA    |                      |         18 |     0 |       16 |        0 |      0 | N      |             0 |        0 | 17/01/2013 | 17/01/2013 |             0 |             0 |      0 |      0 |                  | A       |               |        | 17/01/2013 | SUP      | 01/01/1900 |          |        7000 |            |                 0 |                 0 |
| CORDOBA     |        1803 | TINCHEPADESKJETADVANTAGE-2515ON0000001803 | # 662                | CZ103AL  |       | CZ103AL    | HEPA  | DESKJET ADVANTAGE-2515 | O        | TINC  | N     | CARTUCHO TINTA ORIGINAL HP NEGRO # 662    | CARTUCHO NEGRO #662  |          0 |     0 |       16 |        0 |      0 | N      |             0 |        0 | 08/02/2014 | 08/02/2014 |             0 |             0 |      0 |      0 |                  | A       |               |        | 08/02/2014 | COMPRAS  | 01/01/1900 |          |         100 |            |                 0 |                 0 |
| TEHUACAN    |        1803 | TINCHEPADESKJETADVANTAGE-2515ON0000001803 | # 662                | CZ103AL  |       | CZ103AL    | HEPA  | DESKJET ADVANTAGE-2515 | O        | TINC  | N     | CARTUCHO TINTA ORIGINAL HP NEGRO # 662    | CARTUCHO NEGRO #662  |          0 |     0 |       16 |        0 |      0 | N      |             0 |        0 | 08/02/2014 | 08/02/2014 |             0 |             0 |      0 |      0 |                  | A       |               |        | 08/02/2014 | COMPRAS  | 01/01/1900 |          |         100 |            |                 0 |                 0 |
| XALAPA      |        1803 | TINCHEPADESKJETADVANTAGE-2515ON0000001803 | # 662                | CZ103AL  |       | CZ103AL    | HEPA  | DESKJET ADVANTAGE-2515 | O        | TINC  | N     | CARTUCHO TINTA ORIGINAL HP NEGRO # 662    | CARTUCHO NEGRO #662  |          1 |     0 |       16 |        0 |      0 | N      |             0 |        0 | 08/02/2014 | 08/02/2014 |             0 |             0 |      0 |      0 |                  | A       |               |        | 08/02/2014 | COMPRAS  | 01/01/1900 |          |         100 |            |                 0 |                 0 |
| CORDOBA     |        1802 | TINCHEPADESKJETADVANTAGE-2515ON0000001802 | 662                  | CZ104AL  |       | CZ104AL    | HEPA  | DESKJET ADVANTAGE-2515 | O        | TINC  | N     | CARTUCHO TINTA ORIGINAL HP TRICOLOR # 662 | CARTUCHO # 662 TRICO |          0 |     0 |       16 |        0 |      0 | N      |             0 |        0 | 08/02/2014 | 08/02/2014 |             0 |             0 |      0 |      0 |                  | A       |               |        | 08/02/2014 | COMPRAS  | 01/01/1900 |          |         100 |            |                 0 |                 0 |
| TEHUACAN    |        1802 | TINCHEPADESKJETADVANTAGE-2515ON0000001802 | 662                  | CZ104AL  |       | CZ104AL    | HEPA  | DESKJET ADVANTAGE-2515 | O        | TINC  | N     | CARTUCHO TINTA ORIGINAL HP TRICOLOR # 662 | CARTUCHO # 662 TRICO |          0 |     0 |       16 |        0 |      0 | N      |             0 |        0 | 08/02/2014 | 08/02/2014 |             0 |             0 |      0 |      0 |                  | A       |               |        | 08/02/2014 | COMPRAS  | 01/01/1900 |          |         100 |            |                 0 |                 0 |
| XALAPA      |        1802 | TINCHEPADESKJETADVANTAGE-2515ON0000001802 | 662                  | CZ104AL  |       | CZ104AL    | HEPA  | DESKJET ADVANTAGE-2515 | O        | TINC  | N     | CARTUCHO TINTA ORIGINAL HP TRICOLOR # 662 | CARTUCHO # 662 TRICO |          1 |     0 |       16 |        0 |      0 | N      |             0 |        0 | 08/02/2014 | 08/02/2014 |             0 |             0 |      0 |      0 |                  | A       |               |        | 08/02/2014 | COMPRAS  | 01/01/1900 |          |         100 |            |                 0 |                 0 |
+-------------+-------------+-------------------------------------------+----------------------+----------+-------+------------+-------+------------------------+----------+-------+-------+-------------------------------------------+----------------------+------------+-------+----------+----------+--------+--------+---------------+----------+------------+------------+---------------+---------------+--------+--------+------------------+---------+---------------+--------+------------+----------+------------+----------+-------------+------------+-------------------+-------------------+

Таблица Kardex_Product :

+-------------+---------------+-----------------+----------------------+----------+-------+----------+-------+--------+--------+------------------+------------+------------+------------------+-------------+------------------+--------------+---------------+---------+------------+-------------+------------+------------+
    | Id_Sucursal | Id_Movimiento | Tipo_Movimiento |      Num_Serie       | No_Parte |  OEM  | Cantidad | Costo | Codigo | Oferta |    Ord_Compra    | No_Factura | Ord_Salida | No_Transferencia | No_Contrato |   No_Servicio    | Aut_Especial | Observaciones | Estatus | F_Entrada  | Usr_Entrada |  F_Salida  | Usr_Salida |
    +-------------+---------------+-----------------+----------------------+----------+-------+----------+-------+--------+--------+------------------+------------+------------+------------------+-------------+------------------+--------------+---------------+---------+------------+-------------+------------+------------+
    | XALAPA      |           504 | E+              | 28837                |          | 28837 |       10 |     0 |        | N      | Traspaso No. 543 |            |            |                  |             | Traspaso No. 543 |              |               | F       | 10/10/2016 | TCAXALGER   | 01/01/1900 |            |
    | XALAPA      |           504 | E+              | 32385                |          | 32385 |        5 |     0 |        | N      | Traspaso No. 543 |            |            |                  |             | Traspaso No. 543 |              |               | F       | 10/10/2016 | TCAXALGER   | 01/01/1900 |            |
    | XALAPA      |           504 | E+              | 37069                | 37069    | 37069 |       10 |     0 |        | N      | Traspaso No. 543 |            |            |                  |             | Traspaso No. 543 |              |               | F       | 10/10/2016 | TCAXALGER   | 01/01/1900 |            |
    | XALAPA      |           504 | E+              | TK-1147-172--137-162 | 44259    | 44259 |       10 |     0 |        | N      | Traspaso No. 543 |            |            |                  |             | Traspaso No. 543 |              |               | F       | 10/10/2016 | TCAXALGER   | 01/01/1900 |            |
    | XALAPA      |           505 | E+              | # 662                | CZ103AL  |       |        1 |     0 |        | N      | Traspaso No. 549 |            |            |                  |             | Traspaso No. 549 |              |               | F       | 13/10/2016 | TCAXALGER   | 01/01/1900 |            |
    | XALAPA      |           505 | E+              | 662                  | CZ104AL  |       |        1 |     0 |        | N      | Traspaso No. 549 |            |            |                  |             | Traspaso No. 549 |              |               | F       | 13/10/2016 | TCAXALGER   | 01/01/1900 |            |
    +-------------+---------------+-----------------+----------------------+----------+-------+----------+-------+--------+--------+------------------+------------+------------+------------------+-------------+------------------+--------------+---------------+---------+------------+-------------+------------+------------+

Чтобы создать отчет, который показывает, из таблицы Kardex_Product, Branch_ID, Move_ID, Amount, Cost, Ord_Purchase и вместо серийного номера, или номера детали, или OEM, показывает Load Descr_ таблицы Product.

Я пробовал это предложение:

SELECT Producto.Descr_Larga, Kardex_Producto.Id_Sucursal, 
       Kardex_Producto.Id_Movimiento, Kardex_Producto.Cantidad, 
       Kardex_Producto.Costo, Kardex_Producto.Ord_Compra FROM   Kardex_Producto  JOIN   Producto 
         ON Kardex_Producto.No_Parte = Producto.No_Parte 
        and Kardex_Producto.Id_Sucursal = 'xalapa'
        and Kardex_Producto.Id_Sucursal = Producto.Id_Sucursal WHERE (   Kardex_Producto.F_Entrada >= CONVERT(DateTime, '20161001', 103) 
       OR Kardex_Producto.F_Salida  >= CONVERT(DateTime, '20161001', 103)
      )

, но он возвращает ошибочные результаты (повторяющиеся строки), когда должен возвращать что-то похожее на

+----------------------+-------------------------------------------+-------------+---------------+----------+--------+------------------+------------+------------+
|      Num_Serie       |                Descr_Larga                | Id_Sucursal | Id_Movimiento | Cantidad | Costo  |    Ord_Compra    | F_Entrada  |  F_Salida  |
+----------------------+-------------------------------------------+-------------+---------------+----------+--------+------------------+------------+------------+
| 28837                | TONER BOTELLA ALTERNO 220G                | Xalapa      |           504 |       10 | 398    | Traspaso No. 543 | 10/10/2016 | 01/01/1900 |
| 32385                | TONER RECARGA GENERICO  100 G HP          | Xalapa      |           504 |        5 | 130    | Traspaso No. 543 | 10/10/2016 | 01/01/1900 |
| 37069                | TONER  RECARGA GENERICO  240 G  SHARP     | Xalapa      |           504 |       10 | 230    | Traspaso No. 543 | 10/10/2016 | 01/01/1900 |
| TK-1147-172--137-162 | TONER  RECARGA GENERICO 290GR. KYOCERA    | Xalapa      |           504 |       10 | 398    | Traspaso No. 543 | 10/10/2016 | 01/01/1900 |
| # 662                | CARTUCHO TINTA ORIGINAL HP NEGRO # 662    | Xalapa      |           505 |        1 | 185.76 | Traspaso No. 549 | 13/10/2016 | 01/01/1900 |
| 662                  | CARTUCHO TINTA ORIGINAL HP TRICOLOR # 662 | Xalapa      |           505 |        1 | 185.76 | Traspaso No. 549 | 13/10/2016 | 01/01/1900 |
+----------------------+-------------------------------------------+-------------+---------------+----------+--------+------------------+------------+------------+

, фактически возвращает повторную информацию

+------------------------------------------------------+-------------+---------------+----------+-------+------------------+
|                     Descr_Larga                      | Id_Sucursal | Id_Movimiento | Cantidad | Costo |    Ord_Compra    |
+------------------------------------------------------+-------------+---------------+----------+-------+------------------+
| TONER CARTUCHO REMANOFACTURADO                       | XALAPA      |           504 |       10 |   398 | Traspaso No. 543 |
| TONER CARTUCHO  GENERICO EQUIVALENTE A TN-850  HP    | XALAPA      |           504 |       10 |   398 | Traspaso No. 543 |
| BALERO DE RODILLO DE PRESION                         | XALAPA      |           504 |       10 |   398 | Traspaso No. 543 |
|                                                      | XALAPA      |           504 |       10 |   398 | Traspaso No. 543 |
|                                                      | XALAPA      |           504 |       10 |   398 | Traspaso No. 543 |
|                                                      | XALAPA      |           504 |       10 |   398 | Traspaso No. 543 |
|                                                      | XALAPA      |           504 |       10 |   398 | Traspaso No. 543 |
|                                                      | XALAPA      |           504 |       10 |   398 | Traspaso No. 543 |
| CHIP CARTUCHO XEROX 013R00601                        | XALAPA      |           504 |       10 |   398 | Traspaso No. 543 |
| LAMINA ALTERNO CANON IR-1600                         | XALAPA      |           504 |       10 |   398 | Traspaso No. 543 |
| TONER HP RECARGA  COLOR NEGRO 55 GRS CHIP INCLUIDO   | XALAPA      |           504 |       10 |   398 | Traspaso No. 543 |
| TONER RECARGA HP COLOR CYAN 45GRS CHIP INCLUIDO      | XALAPA      |           504 |       10 |   398 | Traspaso No. 543 |
| TONER RECARGA HP COLOR MAGENTA 45 GRS CHIP INCLUIDO  | XALAPA      |           504 |       10 |   398 | Traspaso No. 543 |
| RECARGA TONER HP COLOR AMARILLO 45 GRS CHIP INCLUIDO | XALAPA      |           504 |       10 |   398 | Traspaso No. 543 |
| CHIP CARTUCHO CE321A CYAN                            | XALAPA      |           504 |       10 |   398 | Traspaso No. 543 |
| CHIP CARTUCHO MAGENTA CE323A                         | XALAPA      |           504 |       10 |   398 | Traspaso No. 543 |
| CHIP CARTUCHO CE320A                                 | XALAPA      |           504 |       10 |   398 | Traspaso No. 543 |
| CHIP CARTUCHO HP COLOR AMARILLO CE322A               | XALAPA      |           504 |       10 |   398 | Traspaso No. 543 |
| TONER RECARGA GENERICO  195G. LEXMARK                | XALAPA      |           504 |       10 |   398 | Traspaso No. 543 |
| CHIP  GENERICO  LEXMARK                              | XALAPA      |           504 |       10 |   398 | Traspaso No. 543 |
+------------------------------------------------------+-------------+---------------+----------+-------+------------------+

И я не понимаю, почему или как это исправить ...

Я заранее благодарю вас за вашу поддержку.

1
задан 08.11.2016, 21:23
3 ответа

В действительности оно не функционирует плохо. Имей в виду, что ты пересекаешь недействительную стоимость (или в мишени) поля No_Parte вместе со стоимостью Id_Sucursal. Если будет повторенная стоимость, у тебя выйдет столько стоимости, повторенной как совпадения бук. А именно: Если у тебя будет два равных типа стоимости в поле и другие 3 в другом, у тебя выйдут 6.

Если ты хочешь сделать этот тип пересечений, и что возвратил тебе единственный реестр, ты будешь должен искать единственную стоимость.

1
ответ дан 24.11.2019, 12:41
  • 1
    Если ты проверишь хорошо подмостки, которые я поместил, замечать и # 237; эксперт, что s и # 237; est и # 225; плохо, так как не встречается informaci и # 243; n брошенная join в informaci и # 243; n содержавшая в Kardex_Producto. Спасибо за твой вклад:-) – Antonio Veneroso Contreras 10.11.2016, 16:27
  • 2
    Mmmmm, я не очень уверен, но я прекращаться и # 237; в одну из этой двух: – Fernando Forcén 10.11.2016, 16:52
  • 3
    Mmmmmm, я не очень уверен, но я quitarí в одну из этой двух: and Kardex_Producto. Id_Sucursal = ' xalapa' and Kardex_Producto. Id_Sucursal = Продукт. Id_Sucursal Creo, что из-за ahí к тебе могут приходить проблемы. – Fernando Forcén 10.11.2016, 16:53
  • 4
    если я снимаю Kardex_Producto.Id_Sucursal='Xalapa' arrojarí в результатах всех отделений; если я снимаю Kardex_Producto.Id_Sucursal=Producto.Id_Sucursal, они выходят aú n má s дублированные линии. – Antonio Veneroso Contreras 10.11.2016, 18:55

Я думаю, что ты помещаешь условие errГіnea в join. Попытайся с этим:

    SELECT Producto.Descr_Larga, Kardex_Producto.Id_Sucursal, 
         Kardex_Producto.Id_Movimiento, Kardex_Producto.Cantidad, 
         Kardex_Producto.Costo, Kardex_Producto.Ord_Compra FROM Kardex_Producto  JOIN   Producto 
     ON Kardex_Producto.No_Parte = Producto.No_Parte 
    and Kardex_Producto.Id_Sucursal = Producto.Id_Sucursal WHERE ((   Kardex_Producto.F_Entrada >= CONVERT(DateTime, '20161001', 103) 
   OR Kardex_Producto.F_Salida  >= CONVERT(DateTime, '20161001', 103)
  ) and Kardex_Producto.Id_Sucursal = 'xalapa')

Был бы должен функционировать. Ошибка состоит в том, что ты помещаешь общее условие внутри join, который используется для того, чтобы "соединять парами" два или более подмостков. Я надеюсь, что он подает тебе

-1
ответ дан 24.11.2019, 12:41
  • 1
    Это не быть должным и # 237; чтобы не иметь никакого различия с c и # 243; я говорю, что он появляется в вопросе – Lamak 08.11.2016, 21:36

Есть два способа это решать:

  1. Добавлять distinct: пример Select distinct...
  2. Группируя твой результат

Эти решения приходят в голову мне, я надеюсь, что они могут помогать тебе в чем-то. Привет.

1
ответ дан 24.11.2019, 12:41