Объясните что выполняет SQL запрос

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Объясните что выполняет SQL запрос

Re: Помогите решить

AiK » 16 ноя 2016, 01:00

Давно не брал я в руки шашек :)
Запрос собирает данные в таблицу TEMP_TABLE.
Из 3-х других таблиц. У таблицы SSSDDD не указан алиас, поэтому объединения (JOIN) с алиасом SD очевидно не верны.
Внешние объединения (outer join) емнип интерпретируются в разных диалектах SQL по-разному, так что я бы почитал лекцию.
А так обычно LEFT OUTER JOIN из главной таблицы (WWWOOO) выдаёт все строчки, даже если в присоединяемых таблицах значения отсутствуют.
То есть в резалтсете в колонках от присоединяемых таблиц будет полно нуллов в некоторых строчках.

Объясните что выполняет SQL запрос

Pepel777 » 15 ноя 2016, 21:48

Есть такое задание:

Исправьте ошибки в запросе и объясните, что он выполняет:

Код: Выделить всё

    INSERT INTO TEMP_TABLE (CORP, HOUSE, CUST, CYCLE, UNIQUE_CUSTOMER_PIN, FIRST_NAME, LAST_NAME, PHONE_1,PHONE_2)
    SELECT
        WO.CORP,
        WO.HOUSE,
        WO.CUST,
        CM.CYCLE,
        CM.UNIQUE_CUSTOMER_PIN,
        CM.FNAME,
        CM.LNAME,
    FROM WWWOOO WO
    JOIN CCCMMM CM ON WO.CORP = CM.CORP AND WO.HOUSE = CM.HOUSE AND WO.CUST = CM.CUST 
    LEFT OUTER JOIN SSSDDD ON SD.RPT_COLL_WRITE_OFF_ID = WO.RPT_COLL_WRITE_OFF_ID 
		WHERE SD.RPT_COLL_WRITE_OFF_ID IS NULL
		AND WO.ADD_DT > SYSDATE-10;
Нашел только одну ошибку - не указаны поля, из которых надо брать значения для PHONE_1,PHONE_2. На большее знаний пока не хватает.

Вернуться к началу