Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема в запросе, если данны Null 
:(
    Опции темы
ExlibrisUnios
Дата 8.6.2009, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 8.6.2009

Репутация: нет
Всего: нет



SELECT "AB_JOB"."AB_JOB_NUM",
"SHEET_SKID"."SHEET_SKID_NUM",
"SHEET_SKID"."SHEET_NET_WT",
"SHEET_SKID"."SHEET_TARE_WT",
"SHEET_SKID"."SKID_DATE",
"SHEET_SKID"."SKID_PIECES",
"PRODUCTION_SHEET_ITEM"."COIL_ABC_NUM",
"SHEET_SKID"."SKID_SHEET_STATUS",
"SHEET_PACKING_ITEM"."PACKING_LIST"
FROM "AB_JOB",
"CUSTOMER_ORDER",
"SHEET_SKID",
"PRODUCTION_SHEET_ITEM",
"SHEET_SKID_DETAIL",
"SHEET_PACKING_ITEM"
WHERE ( "AB_JOB"."ORDER_ABC_NUM" = "CUSTOMER_ORDER"."ORDER_ABC_NUM" ) and
( "SHEET_SKID"."AB_JOB_NUM" = "AB_JOB"."AB_JOB_NUM" ) and
( "SHEET_SKID_DETAIL"."PROD_ITEM_NUM"="PRODUCTION_SH EET_ITEM"."PROD_ITEM_NUM" ) and
( "SHEET_SKID"."SHEET_SKID_NUM" = "SHEET_SKID_DETAIL"."SHEET_SKID_NUM" ) AND
( ("SHEET_SKID"."SHEET_SKID_NUM" ="SHEET_PACKING_ITEM"."SHEET_SKID_NUM”) AND
( ( "CUSTOMER_ORDER"."ORIG_CUSTOMER_PO" = 'PO' )) 

Нужно изменить запрос так, что даже если "SHEET_PACKING_ITEM"."PACKING_LIST" имеет значеие null запрос все равно будет работать просто на месте значение null будет пустое поле. Пока же если значение null то для "SHEET_SKID"."SHEET_SKID_NUM" ничего не генериться : (((

Помогите!

Спасибо!
PM MAIL   Вверх
Gluttton
Дата 11.6.2009, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

Репутация: 24
Всего: 54



ExlibrisUnios, приведенный Вами запрос не отформатирован, что усложняет чтение кода и понимание его сути!
Пожалуйста пользуйтесь тегами "Код"!

Вот что получилось у меня:
Код

SELECT 
    AB_JOB.AB_JOB_NUM,
    SHEET_SKID.SHEET_SKID_NUM,
    SHEET_SKID.SHEET_NET_WT,
    SHEET_SKID.SHEET_TARE_WT,
    SHEET_SKID.SKID_DATE,
    SHEET_SKID.SKID_PIECES,
    PRODUCTION_SHEET_ITEM.COIL_ABC_NUM,
    SHEET_SKID.SKID_SHEET_STATUS,
    SHEET_PACKING_ITEM.PACKING_LIST
FROM 
    AB_JOB,
    CUSTOMER_ORDER,
    SHEET_SKID,
    PRODUCTION_SHEET_ITEM,
    SHEET_SKID_DETAIL,
    SHEET_PACKING_ITEM
WHERE 
    AB_JOB.ORDER_ABC_NUM = CUSTOMER_ORDER.ORDER_ABC_NUM 
    AND  SHEET_SKID.AB_JOB_NUM = AB_JOB.AB_JOB_NUM 
    AND  SHEET_SKID_DETAIL.PROD_ITEM_NUM=PRODUCTION_SH EET_ITEM.PROD_ITEM_NUM 
    AND  SHEET_SKID.SHEET_SKID_NUM = SHEET_SKID_DETAIL.SHEET_SKID_NUM 
    AND SHEET_SKID.SHEET_SKID_NUM =SHEET_PACKING_ITEM.SHEET_SKID_NUM
    AND CUSTOMER_ORDER.ORIG_CUSTOMER_PO = 'PO' 


Вами не указана СУБД, но проведя аналогию с теми СУБД, с которыми мне приходилось сталкиваться, считаю, что столь обильное использование ковычек не является необходимым (Вы ведь не используете в качестве названий таблиц/полей ни ключевые слова ни составные названия)! А читабельность от этого ой как страдает.

Где то Вы слукавили - в приведенном Вами коде количество открывающих скобок не равно количеству закрывающих. 

Не думаю, что стоит использовать "двойные" скобки:
Код

( ( "CUSTOMER_ORDER"."ORIG_CUSTOMER_PO" = 'PO' ))

Суть запроса от этого не меняется...  smile 

Теперь непосредственно о предмете вопроса.
Цитата

Нужно изменить запрос так, что даже если "SHEET_PACKING_ITEM"."PACKING_LIST" имеет значеие null запрос все равно будет работать 


Поскольку SHEET_PACKING_ITEM.PACKING_LIST не присутствует в предложении WHERE, то осмелюсь утверждать, что от того какое у него значение результат запроса не зависит (в том смысле, что не влияет на условие отбора).

Цитата

просто на месте значение null будет пустое поле

Если Вы хотите, что бы результат запроса изменялся в зависимости от значений, то используйте CASE.

Цитата

Пока же если значение null то для "SHEET_SKID"."SHEET_SKID_NUM" ничего не генериться : (((


Расставте запятые, т.к. читать можно двояко:
Пока же если значение null, то для "SHEET_SKID"."SHEET_SKID_NUM" ничего не генериться : (((
Пока же если значение null то для "SHEET_SKID"."SHEET_SKID_NUM", ничего не генериться : (((

Если вопрос всё ещё актуален, то, пожалуйста уточните все "шераховатости", и я глубоко убежден, что Вам удасться получить помощь, на самом доброжелательном форуме по вопросам составления SQL- запросов smile !

Это сообщение отредактировал(а) Gluttton - 11.6.2009, 13:31


--------------------
Слава Україні!
PM MAIL   Вверх
Akina
Дата 11.6.2009, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Гм... а вообще - в какой СУБД имена таблиц и полей заключается в двойные кавычки?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Gluttton
Дата 11.6.2009, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

Репутация: 24
Всего: 54



Akina, 

Цитата

Гм... а вообще - в какой СУБД имена таблиц и полей заключается в двойные кавычки?


Успешно апробировано лично на Firebird 2.1.

Идентификаторы в двойных кавычках

Это сообщение отредактировал(а) Gluttton - 11.6.2009, 12:31


--------------------
Слава Україні!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0425 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.