|
Помогите разобраться с запросом
|
|||
---|---|---|---|
#18+
Доброго дня. Помогите разобраться с запросом: SELECT COUNT(*) FROM cdr WHERE dst = 320 AND CHAR_LENGTH(src) = 3 AND calldate >= '$res1' AND calldate < '$res2' тут мне все понятни и все работает на ура. НО! когда нужен групповой запрос типа: SELECT COUNT(*) FROM cdr WHERE dst IN(320,322,323,324,325,326,327,381,383,384,388,431,435) AND CHAR_LENGTH(src) > 3 AND calldate >= '$res1' AND calldate < '$res2' GROUP BY dst то отображаются только не нулевые значения. Во всех справочниках * (звездочка) отображение всех значений...... Куда копать и где искать? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2020, 15:52 |
|
Помогите разобраться с запросом
|
|||
---|---|---|---|
#18+
otrazhenie Во всех справочниках * (звездочка) отображение всех значений...... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2020, 16:09 |
|
Помогите разобраться с запросом
|
|||
---|---|---|---|
#18+
есть же разница в условиях, может дело в этом? Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2020, 16:12 |
|
Помогите разобраться с запросом
|
|||
---|---|---|---|
#18+
Хорошо, тогда как мне сделать запрос, чтобы выводились и нулевые значения? Я такого пока не нашел. Вот и обратился за помощью. дело не в том что больше или равно...да пофиг на это! разница по группе или одиночный запрос! ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2020, 16:13 |
|
Помогите разобраться с запросом
|
|||
---|---|---|---|
#18+
так мы не знаем ваши данные. в первом CHAR_LENGTH(src) = 3 во втором CHAR_LENGTH(src) > 3 нужны данные и наполнение чтобы понять ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2020, 16:46 |
|
Помогите разобраться с запросом
|
|||
---|---|---|---|
#18+
попробуй вместо SELECT COUNT(*) подставить имя конкретного столбца. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2020, 06:30 |
|
Помогите разобраться с запросом
|
|||
---|---|---|---|
#18+
DYUMON попробуй вместо SELECT COUNT(*) подставить имя конкретного столбца. пробовал. Нету нулей. Нужен оператор подсчета строк с нулем. Я такого не знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2020, 07:42 |
|
Помогите разобраться с запросом
|
|||
---|---|---|---|
#18+
Чистоту данных проверял? может нет таких записей. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2020, 12:46 |
|
Помогите разобраться с запросом
|
|||
---|---|---|---|
#18+
поэтому и должен быть ноль. В первом случае он выводится....во втором нет (пропускается) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2020, 13:34 |
|
Помогите разобраться с запросом
|
|||
---|---|---|---|
#18+
otrazhenie, Разбейте запрос на несколько: Код: sql 1.
Код: sql 1.
Код: sql 1.
Код: sql 1.
Посмотрите в чём разница, и где теряется ваш ноль. Т.е. последовательно убираем условия и наблюдаем за результатом. А пытаться предугадывать действия сервера - пустая трата времени и нервов, не делайте так, в конкретном случае вы не умнее компьютера и данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2020, 14:14 |
|
Помогите разобраться с запросом
|
|||
---|---|---|---|
#18+
разбивал....ноль теряется при переходе на WHERE dst IN ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2020, 16:03 |
|
Помогите разобраться с запросом
|
|||
---|---|---|---|
#18+
otrazhenie разбивал....ноль теряется при переходе на WHERE dst IN ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2020, 16:30 |
|
Помогите разобраться с запросом
|
|||
---|---|---|---|
#18+
база телефонной станции. структура в файле. мне нужна статистика по входящим звонкам за период с разбивкой по внутренним номерам. так вот. если делать запрос по каждому номеру Код: sql 1.
то запрос возвращает 0 если записей с такими условиями нет. но множественные запросы сильно нагружают сервер и по времени это долго и я решил оптимизировать запрос. Вместо множества одиночных сделать один. Код: sql 1.
запрос прекрасно отрабатывает и по времени и по нагрузке....НО нет нулей если записей с такими условиями нет. соответственно заполнение таблицы значениями плывет. Код: php 1. 2. 3. 4. 5. 6.
думаю понятно объяснил что мне надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2020, 09:13 |
|
Помогите разобраться с запросом
|
|||
---|---|---|---|
#18+
otrazhenie, Чему равен COUNT(*) в первом случае и во втором? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2020, 17:21 |
|
Помогите разобраться с запросом
|
|||
---|---|---|---|
#18+
Gluck99, в первом случае он равен 0 во втором случае из 13 позиций опроса выдается только 9 значений. Пустые нулевые значения запроса отбрасываются. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2020, 08:41 |
|
Помогите разобраться с запросом
|
|||
---|---|---|---|
#18+
otrazhenie, у вас в части запроса IN сравниваются с конкретными значениями . NULL (насколько я понял речь про это) не является явным значением - оно обрабатывается отдельными условиями типо IS NULL или NOT NULL. как исправить. да очень просто. 1) превратить значения поля dst, в случае NULL в некое число, которое не может быть в IN (например в 0) 2) добавить принудительно это число внутрь скобочек IN 3) если требуется различать эти случаи на клиенте - анализировать возвращаемое значение поля dst как то так (круглый) ЗЫ Для подстановки в бд некоего значения вместо NULL обычно применяют встроенные функции. Для оракла это был вроде nvl, для postgres вроде как coalesce, для мускуля - вроде как так-же подходит coalesce. Более того coalesce это вроде как стандарт ANSI SQL... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2020, 11:34 |
|
Помогите разобраться с запросом
|
|||
---|---|---|---|
#18+
kolobok0, Параметр IN дает перечисление значений поля dst в запросе а надо анализировать COUNT(*) на NULL так вот, на выходе у меня многомерный массив: Array ( [0] => Array ( [0] => 320 [1] => 1 ) [1] => Array ( [0] => 322 [1] => 1 ) [2] => Array ( [0] => 324 [1] => 1 ) [3] => Array ( [0] => 325 [1] => 11 ) [4] => Array ( [0] => 381 [1] => 6 ) [5] => Array ( [0] => 383 [1] => 4 ) [6] => Array ( [0] => 384 [1] => 6 ) [7] => Array ( [0] => 388 [1] => 4 ) ) как видите поле с dst 323 отсутствует. Тогда такой вопрос... КАК мне выцепить в переменную по значению например Array ( [0] => 320 [1] => 1 ) значение второго столбца ([1])? и не париться с этими нулями. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2020, 15:28 |
|
Помогите разобраться с запросом
|
|||
---|---|---|---|
#18+
otrazhenie, если Вам необходимо сформировать строку которой нет во входящем множестве - то можно сделать джоин который это позволяет. т.е. на входе - ваше множество айдишников определённого поля, и вы связываете записи из таблицы. тогда в получаемых записях вы получите ваши нули, если айди будет отсутствовать в данных. это что ли? (круглый) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2020, 03:00 |
|
Помогите разобраться с запросом
|
|||
---|---|---|---|
#18+
kolobok0, думаю тут JOIN не совсем подойдет. он объединяет таблицы, а мне нужно объединить поле dst с результатом запроса COUNT(*) . ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2020, 07:35 |
|
Помогите разобраться с запросом
|
|||
---|---|---|---|
#18+
otrazhenie ...мне нужно объединить поле dst с результатом запроса COUNT(*) . вот ваша фраза - это третье уже задания которое Вам надо сделать? исходя из вашего первого вопроса в топике, необходимо : чтобы count посчитал выборку по тем перечисленным значениям dst которые приведены в IN (...) даже если таких значений dst нет в таблице. при этом если значений нет в таблице то необходимо вернуть пустые поля в результирующих записях. т.е. если в скобочках IN () перечислено 5 значений, то независимо от существования таких dst в таблице count должен вернуть 5... так? или вы меняете хотелки по мере общения в топике? если я правильно понял первый ваш вопрос - то ответ я уже дал выше. использовать join который вам будет выдавать пустые поля, на ваши все перечисление поля dst. (круглый) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.05.2020, 02:21 |
|
Помогите разобраться с запросом
|
|||
---|---|---|---|
#18+
otrazhenie kolobok0, думаю тут JOIN не совсем подойдет. он объединяет таблицы, а мне нужно объединить поле dst с результатом запроса COUNT(*) . ... |
|||
:
Нравится:
Не нравится:
|
|||
09.05.2020, 09:03 |
|
Помогите разобраться с запросом
|
|||
---|---|---|---|
#18+
Alex_Ustinov otrazhenie kolobok0, думаю тут JOIN не совсем подойдет. он объединяет таблицы, а мне нужно объединить поле dst с результатом запроса COUNT(*) . и КАК мне его применить? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2020, 07:45 |
|
Помогите разобраться с запросом
|
|||
---|---|---|---|
#18+
otrazhenie, задачу еще раз сформулируйте, без привязки с первому топику приведите пример того, что вы хотите видеть в результате запроса ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2020, 08:45 |
|
Помогите разобраться с запросом
|
|||
---|---|---|---|
#18+
Alex_Ustinov, хорошо.....в общем есть групповой запрос Код: plsql 1.
состоит из 13 пунктов в поле dst. Проблема в том что на выходе COUNT(*) есть нулевые результаты, которые отбрасываются. Массив сдвигается. Мне нужно либо привязать результат Count(*) к полю dst, либо выводить нулевые, NULL, или пустое поле - мне не важно. На выходе имею многомерный массив вида: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
в массиве присутствуют не все значения dst. Надеюсь понятно объяснил ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2020, 14:06 |
|
Помогите разобраться с запросом
|
|||
---|---|---|---|
#18+
otrazhenie на выходе COUNT(*) есть нулевые результаты, которые отбрасываются Если вам принципиально надо получить в результате запроса полный набор dst, то сложите их в табличку и сделайте LEFT JOIN от нее. Если это не принципиально, то на php, мне кажется, решить было бы проще. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2020, 15:22 |
|
|
start [/forum/topic.php?fid=47&fpage=21&tid=1828584]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 275ms |
total: | 426ms |
0 / 0 |