Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2009.03.15;
Скачать: [xml.tar.bz2];

Вниз

SQL Запрос выводит пустоту   Найти похожие ветки 

 
DelphiN!   (2008-07-24 12:11) [0]

Всем доброго времени суток!
Хочу вывести минимальную, максимальную и среднюю выручку по датам для клиентов тип которых Card User, однако если добавляю условие проверки типа клиента, запрос выводит пустоту, хотя такие клиенты в БД 100% есть.
В чем может быть дело?


select distinct(cast(time_ as date)) DATE_,min(summ_),avg(summ_),max(summ_)
from casebase MAIN where (prim_ <> "Login activated")
and (prim_ <> "Login deactivated")and(time_ >= "01.07.2008")and
((select type_ from users where cardno_ = main.cardno_) = "Card User")
group by 1
order by 1


 
Медвежонок Пятачок ©   (2008-07-24 12:15) [1]

запрос выводит пустоту, хотя такие клиенты в БД 100% есть.

1000 % что нет


 
DelphiN!   (2008-07-24 12:17) [2]


> Медвежонок Пятачок ©   (24.07.08 12:15) [1]


:) Клиенты со значением в поле Users.type_ равным "Card User" - есть!


 
stas ©   (2008-07-24 12:19) [3]

Поочереди отключи каждое условие и узнаешь что неправильно.


 
Медвежонок Пятачок ©   (2008-07-24 12:19) [4]

Но у тебя запрос-то не такой
select * from clients where Users.type_ = "Card User"


 
DelphiN!   (2008-07-24 12:20) [5]


> stas ©   (24.07.08 12:19) [3]
>
> Поочереди отключи каждое условие и узнаешь что неправильно.
>


А я знаю какое не правильно, я его выделил жирным ((select type_ from users where cardno_ = main.cardno_) = "Card User") но вот  как сделать правильно, не знаю ...


 
Медвежонок Пятачок ©   (2008-07-24 12:22) [6]

а зачем Card User снаружи скобок


 
stas ©   (2008-07-24 12:24) [7]

выбери одного юзера, который точно вернет твой запрос без этого условия и выполни отдельно запрос, что он вернул?
select type_ from users where cardno_ = юзер


 
Медвежонок Пятачок ©   (2008-07-24 12:24) [8]

and
((select type_ from users where cardno_ = main.cardno_) = "Card User")


and exists(select null from users where cardno_ = main.cardno_ and тип = "Card User")


 
DelphiN!   (2008-07-24 12:24) [9]


> Медвежонок Пятачок ©   (24.07.08 12:19) [4]
>
> Но у тебя запрос-то не такой
> select * from clients where Users.type_ = "Card User"


По моему предположению
В основном запросе при прохождении каждого пользователя делается под запрос ((select type_ from users where cardno_ = main.cardno_) = "Card User"), который в свою очередь находит текущего пользователя(из основного запроса) в таблице Users и возвращает его тип, а основной запрос сравнивает, соответствует ли этот тип необходимому.
Но к сожалению мое предположение не является верным, а как его сделать верным я не знаю ... :(


 
Медвежонок Пятачок ©   (2008-07-24 12:25) [10]

а как его сделать верным я не знаю ... :(

Знаешь, но не признаешься. Надо выучить язык запросов


 
DelphiN!   (2008-07-24 12:28) [11]


> stas ©   (24.07.08 12:24) [7]

> выбери одного юзера, который точно вернет твой запрос без
> этого условия и выполни отдельно запрос, что он вернул?
> select type_ from users where cardno_ = юзер


Он вернул "Card User"


> Медвежонок Пятачок ©   (24.07.08 12:24) [8]
>
> and
> ((select type_ from users where cardno_ = main.cardno_)
> = "Card User")
>
> and exists(select null from users where cardno_ = main.cardno_
> and тип = "Card User")


Заработало!!! Спасибо всем большущее!!!


 
sniknik ©   (2008-07-24 12:34) [12]

> делается под запрос ((select type_ from users where cardno_ = main.cardno_) = "Card User")
простой join в явном виде будет и быстрее и нагляднее...

select *
from casebase с
INNER JOIN users u ON c.cardno_ = u.cardno_
WHERE u.type_ = "Card User"

возвращает данные? а убрать условие в WHERE?

+
distinct(cast(time_ as date))
нафиг не нужен, раз у тебя по этому полю группировка, оно и так будет уникально по значениям.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2009.03.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.066 c
15-1232042322
Kerk
2009-01-15 20:58
2009.03.15
rtorrent


15-1231164334
Altairr
2009-01-05 17:05
2009.03.15
Принадлежность треугольнику


2-1232705794
R13
2009-01-23 13:16
2009.03.15
Событие разрушения формы


6-1200673788
Михаил (Питер)
2008-01-18 19:29
2009.03.15
ICMP запросы и перевод сетевой карты в режим прослушивания


6-1199884451
werb
2008-01-09 16:14
2009.03.15
Как простучать сетевую директорию





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский