Crystal Reports - Объединение таблиц, если существует

У меня проблема, у меня есть 4 таблицы, которые мне нужно присоединить, я уже выполнил соединение для 3 из них (давайте назовем их table1, table2, table3), присоединяйтесь, пока эта точка не работает нормально, проблема возникает с последней таблицей , здесь мне нужно спросить, существует ли запись в таблице номер 4 (которая представляет собой комбинацию между внешним ключом, который используется для присоединения к другим 3 таблицам, плюс одно значение дополнительного столбца, которое не записывается для всех записей), тогда, если запись существует в таблице 4, мне нужно отобразить его содержимое «один конкретный столбец из таблицы 4», иначе просто отобразите его пустым. Кто-нибудь делал это раньше?

Это запрос с объединением первых трех таблиц.

SELECT
TABLE1.NUMPROD as BATCH_ID,
TABLE2.EQPCODE as Tank,
TABLE1.CODEPROD as Product_Code,
TABLE1.XFIELD_03 as Sequence,
TABLE3.ITEM_CONSUMED as ITEM,
TABLE3.CONSUMPTION_QUANTITY as QUANTITY

FROM 
TABLE1 
INNER JOIN TABLE3 on TABLE1.NUMPROD = TABLE3.ORDERID
INNER JOIN TABLE2 ON TABLE3.ORDERID = TABLE2.NUMBERLOT

AND TABLE1.ETAT = 'F' 
AND TABLE1.DATECREATION BETWEEN ('20191001') AND ('20191004') 
AND TABLE1.XFIELD_03 IS NOT NULL
AND TABLE3.CONSUMPTION_QUANTITY > 0 
and TABLE2.VALUE = 'ASSIGNED'

person Ney Fred Jimenez    schedule 28.10.2019    source источник


Ответы (1)


Как насчет чего-то вроде этого:

SELECT
TABLE1.NUMPROD as BATCH_ID,
...
TABLE3.CONSUMPTION_QUANTITY as QUANTITY,
--                                           --> from this line ...
(select some_column 
 from table4 t4
 where t4.some_id = table1.some_other_Id
) table_4_column                      
--                                           --> ... to this line
FROM 
TABLE1 JOIN ...

Запрос, извлекающий данные из table4 , должен возвращать не более одного значения; в противном случае вы получите too-many-rows ошибку.

person Littlefoot    schedule 28.10.2019
comment
Случай, который у меня есть, заключается в том, что таблица 4 содержит только одну запись для каждого объекта, которая является записью, которую мне нужно отображать / извлекать, проблема в том, что не все объекты имеют эту запись, тогда мне нужно отобразить список, содержащий всю информацию, которая у меня уже есть из других таблиц плюс запись из table4, когда она применима. - person Ney Fred Jimenez; 28.10.2019
comment
Ну вот как я понял вопрос. Я перечитал то, что вы написали изначально, и - для меня - это все еще имеет смысл. Если он не делает то, что вам нужно, было бы полезно, если бы вы разместили тестовый пример (CREATE TABLE и INSERT INTO образцы данных) и результат, который вы хотели бы получить из такого ввода. - person Littlefoot; 28.10.2019