Как унифицировать два подмостков в одной?

Я работаю в докладе который дебет показывать информацию о статье, также как и Ваши дорожки различные склады и Ваш настоящий запас. Использование SQL server с openquery, чтобы получать информацию BaaN.

То, что я хочу реализовать, что-то похожее на изображение, которое я присоединяю:

Información

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

Проблема, которая у меня есть, и что я в действительности не знаю, как мне удается, он состоит в том, чтобы информация, которую я получаю с SQL, не показала в этом формате для меня больше ничего себе тянуть это в мое приложение.

Настоящий query, который у меня есть, и который не показывает синюю часть, - следующий:

SELECT * FROM OPENQUERY
(am3p1, 'SELECT o.T$PDNO, REPLACE(o.T$SITM,'' '','''')T$SITM, o.T$CWAR, o.T$QUNE, o.T$CPES$1, w.T$LOCA, w.T$STKS FROM baan.tticst001305 o
INNER JOIN baan.twhinr140305 w ON REPLACE(o.T$SITM,'' '','''') = REPLACE(w.T$ITEM,'' '','''')
 WHERE o.T$PDNO = ''2GE000632'' AND w.T$LOCA <> '' '' ORDER BY o.T$SITM, w.T$IDAT')

0
задан 31.03.2016, 20:44
1 ответ

Как я вижу в данных, распоряжение дано колонной "статьей". Так что ты мог бы делать 2 queries отделенные и использовать СОЮЗ, потом упорядочивать их из-за "Статьи" и добавочного поля, которое мы назовем "источником" для того, чтобы, после упорядочивая это, остался первым заголовок.

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

Чтобы это был OPENQUERY или нет, не важно.

SELECT * FROM
(
  /* hacemos el primer select, este ya lo tienes */
  (SELECT 1 as origen, miItem as item, las, demas, columnas, aqui 
       FROM tabla1 WHERE ...)
  UNION /* esto une las consultas en un solo resultado */
  /* este select lo armas como sea que necesites para calcular esos valores de cabecera */
  (SELECT 0 as origen, suItem as item, las, demas, columnas, aqui
       FROM tabla2 WHERE ...)
)
ORDER BY item, origen;

Так, сначала ты объединяешь результаты, потом упорядочиваешь их из-за Статьи, и в конце концов из-за источника, оставаясь первым источник меньшего источника.

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

Я объясняю тебе как...

Он предполагает, что у таблицы A есть колонны "имя" и "адрес", и у таблицы B есть колонны "посланные письма".

Консультация по поводу таблицы A будет должна наполнять колонну "письма, посланные" и таблица B будет должна наполнять колонны таблицы A.

(SELECT A.nombre, A.direccion, '' as cartarenviadas FROM A)
UNION
(SELECT '' as nombre, '' as direccion, B.cartasenviadas FROM B)

Я жду, что он понятый, любую вещь консультироваться.

Замечание:

В инстанции @rsciriano, используя UNION ALL вместо UNION ты получишь большее выступление, так как SQL не реализует шаг удаления дубликатов.

5
ответ дан 24.11.2019, 14:40
  • 1
    Привет @rnd, если не требуют, чтобы удалить дубликаты быть и # 237; в м и # 225; s и #243; ptimo использовать СОЮЗ ALL – rsciriano 31.03.2016, 21:01
  • 2
    @rsciriano он верный, но у подмостков есть различные колонны, я не вижу, что он смог удвоить. – rnrneverdies 31.03.2016, 21:05
  • 3
    Которое я имею в виду, дело в том, что, когда Server использует UNION, SQL пробовать и # 225; искать и удалять дубликаты, из-за которого har и # 225; самая медленная консультация. Вещь, которая не должна не происходить, и # 225; с UNION ALL – rsciriano 31.03.2016, 21:08
  • 4
    @rsciriano хорошая точка, ему это не было таково ясно. спасибо за info. – rnrneverdies 31.03.2016, 21:11
  • 5
    Привет @rnd. Большое спасибо из-за clarificaci и # 243; n, он был достаточно помощи. Я смог реализовывать obtenci и # 243; n данных и играя tambi и # 233; n с моим grid logr и # 233; objectico. Я ayud и # 243; достаточно Ваш aportaci и # 243; n. – Federico Prado 31.03.2016, 21:18

Теги

Похожие вопросы