Главная страница
    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.445 c
15-1231941638
DillerXX
2009-01-14 17:00
2009.03.15
Подскажите про распределение нагрузок


3-1216004585
Viod
2008-07-14 07:03
2009.03.15
Вернуть значение поля внутри хранимой процедуры


4-1206449330
Thrasher
2008-03-25 15:48
2009.03.15
Печать


2-1232915698
cchiko
2009-01-25 23:34
2009.03.15
Как мне в delphi запустить импорт базы данних


3-1216046758
Ivanoff
2008-07-14 18:45
2009.03.15
Помогите правельно написать SQL запрос





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский