Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.09.2013, 21:25   #1
jeka911
Пользователь
 
Регистрация: 04.09.2013
Сообщений: 13
По умолчанию запрос sql

Привет всем вопрос по запросу нужно вывести всех людей у которых почтовый зипкод 789098 098789 900878 909890 675890 908778 897098 678564 876099 по областям страны и отправка по ним мягких игрушек была с 12.08.10 по 12.09.12 и отправка не может стоить 0
Код:
 SELECT a.address,a.zipcod FROM action a , delivery d WHERE 
         a.zipcod IN ('789098' ,'789098','900878 ','908778 ','897098' ,'678564' ,'876099')
         AND d.send BETWEEN to_date('12.08.2010', 'dd.mm.yyyy') AND to_date('12.09.2012', 'dd.mm.yyyy')
        And d.price is not null
у меня получаеться не обрезаеться по дате вообще и ничего не выбирается ( данные все есть)

Последний раз редактировалось Stilet; 09.09.2013 в 12:12.
jeka911 вне форума Ответить с цитированием
Старый 04.09.2013, 21:41   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Сразу - нет связи во WHERE между action и delivery. It is хреново. Сутя по TO_DATE запрос для Oracle. Гугл такой формат подсказал TO_DATE('2003/07/09', 'yyyy/mm/dd'). Может и в этом еще проблема, не знаю, с Oracle не дружу
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 04.09.2013, 22:35   #3
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

и, кстати, вроде бы так правильно
Код:
and not d.price is null
ReportCube вне форума Ответить с цитированием
Старый 04.09.2013, 22:45   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

is not NULL вообще-то правильно. Другое дело, что ноль может быть. Тогда лучше COALESCE(d.price,0)<>0
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 05.09.2013, 00:48   #5
jeka911
Пользователь
 
Регистрация: 04.09.2013
Сообщений: 13
По умолчанию

SELECT a.address,a.zipcod FROM action a , delivery d WHERE
a.zipcod IN ('789098' ,'789098','900878 ','908778 ','897098' ,'678564' ,'876099')
AND d.send BETWEEN to_date('12.08.2010', 'dd.mm.yyyy') AND to_date('12.09.2012', 'dd.mm.yyyy')
AND d.price > 0
AND a.action_id = d.delivery_id(+)
переписал все равно пусто возвращает уже голову сломал(
jeka911 вне форума Ответить с цитированием
Старый 05.09.2013, 01:00   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Код:
AND a.action_id = d.delivery_id(+)
есть подозрение, что Вы таблицы неверно связали! (т.е. коды в a.action_id никак не связаны с d.delivery_id)

интуитивно, предполагаю основываясь на различии в именах полей!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.09.2013, 02:33   #7
jeka911
Пользователь
 
Регистрация: 04.09.2013
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
есть подозрение, что Вы таблицы неверно связали! (т.е. коды в a.action_id никак не связаны с d.delivery_id)

интуитивно, предполагаю основываясь на различии в именах полей!
по ключу связываю)и там и там поля есть(
jeka911 вне форума Ответить с цитированием
Старый 05.09.2013, 03:04   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
по ключу связываю)и там и там поля есть(
то, что эти поля есть, это понятно (иначе запрос бы ошибку выдавал, а не пустой набор).
я про другое толкую - похоже, что
- либо связь между таблицами должна осущестляться по другим полям (или её совсем нет)
- либо нет данных, расположенных в заданном диапазоне с данными zip-кодами!

p.s. попробуйте убирать/добавлять условия и смотреть, что получается.
начните со следующих запросов:
Код:
SELECT a.address,a.zipcod, d.* FROM action a , delivery d 
WHERE a.action_id = d.delivery_id
Код:
SELECT a.* FROM action a
WHERE a.zipcod IN ('789098' ,'789098','900878 ','908778 ','897098','678564' ,'876099')
Код:
SELECT d.* FROM delivery d 
WHERE d.send BETWEEN to_date('12.08.2010', 'dd.mm.yyyy') AND to_date('12.09.2012', 'dd.mm.yyyy')
что-то Вы не учитываете, а без ваших данных понять что именно Вы упускаете из виду - можно только включив телепатор!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.09.2013, 10:10   #9
jeka911
Пользователь
 
Регистрация: 04.09.2013
Сообщений: 13
По умолчанию

получается у меня выбирает так что по каждому зипкоду всего 1 доставка хотя в городе по городам много доставок было
jeka911 вне форума Ответить с цитированием
Старый 05.09.2013, 11:32   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
получается у меня выбирает так что по каждому зипкоду всего 1 доставка хотя в городе по городам много доставок было
И это хорошо или плохо?
Я так понимаю Ваш пост, что Вы разобрались с проблемой?
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
sql запрос Alex3840229 C# (си шарп) 10 28.01.2012 19:43
Запрос с CASE переделать в запрос с PIVOT (MS SQL Server 2005) Машуля SQL, базы данных 4 06.05.2010 21:09
Создание новых таблиц в MS SQL SERVERE через SQL запрос в Delphi S_Yevgeniy Помощь студентам 1 27.10.2009 06:26
SQL запрос Uomo БД в Delphi 17 23.04.2008 14:12
SQL запрос на основе другого SQL запрса... Timoxa БД в Delphi 1 07.01.2007 18:15