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

Вниз

Как заставить IBQuery или OraQuery вернуть пустой результат   Найти похожие ветки 

 
alexnauz ©   (2010-06-21 13:25) [0]

Доброго дня. Уважаемые Мастера. Использую для заполнения таблицы запрос типа:

select meszap, count(*) from table
where условие
group by meszap

Такой запрос возвращает значения сгруппированные по месяцу результаты, но если за текущий месяц при заданном условии нет записей, то данный месяц вообще игнорируется в результате, т.е. если за февраль не было записей, то будет выведено:

1 - 5
3 - 4
4 - 6

В результате при попытке заполнения таблицы в цикле, где используется Query.Next получаю ерунду. Можно ли заствить Query вернуть пустой результат т.е.

1 - 5
2 - 0
3 - 4
4 - 6

Александр.


 
turbouser ©   (2010-06-21 13:43) [1]


> alexnauz ©   (21.06.10 13:25)  

Сделать можно. С исп. доп. таблицы, с UNION или ХП.
Но лучше сделать что бы при использовании Query.Next текущий результат не казался ерундой.


 
Плохиш ©   (2010-06-21 14:35) [2]


> В результате при попытке заполнения таблицы в цикле, где
> используется Query.Next получаю ерунду.

Проблема написать одно условие сравнения?


 
Вариант   (2010-06-21 14:50) [3]


> alexnauz ©   (21.06.10 13:25)

Если верно понял, проблема в том что нет вообще записей, где например meszap  имеет значение 2 (февраль) или еще какое-либо?
В этом случае действительно будут пропущенные значения.

Оракл почти забыл, как и имена его служебных таблиц, столбцов и т.п., но попробую накидать примерный вариант для Оракла

select T1.M,count(T2.meszap) from
 (select rownum as M from ALL_OBJECTS where rownum < 13) T1
LEFT JOIN
TABLE T2 ON T2.meszap=T1.M and <условие>
GROUP BY T1.M


Идея в формировании псевдо стобца T1.M, который имеет все нужные значения (у нас от 1 до 12) и левое объединение его уже с реальным столбцом реальной таблицы


 
alexnauz ©   (2010-06-21 14:52) [4]

Не проблема включить в цикл изменяемый Query, но описанным выше одним запросом, куда реально входило с десяток всяких sum, целиком заполнялась отчётная таблица и всё прекрасно работало пока не встретилось пустое значение. Написать условие сравнения вполне возможно, но в программе считается семь разных таблиц подобным способом, значит условия сравнения надо писать во всех случаях, причём, учитывая что в программе возможно задавать период счёта (за месяц, за квартал, за год, с марта по ноябрь и т. п.), то условие сравнения выливается не в одну строку текста. Конечно, число строк не пугает, но тогда проще включить в цикл изменяемый Query.



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

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

Наверх




Память: 0.45 MB
Время: 0.064 c
15-1327399943
Vulko
2012-01-24 14:12
2013.03.22
ищу complementary filter на java/c/c++/c#/delphi


15-1337965875
alexdn
2012-05-25 21:11
2013.03.22
Php


4-1245790108
istok20
2009-06-24 00:48
2013.03.22
перехват native api в 64bit Windows...


2-1341236271
>|<
2012-07-02 17:37
2013.03.22
Повторная загрузка изображения на форму, которая в DLL


2-1338267500
SHerloK
2012-05-29 08:58
2013.03.22
Tchar и колесико





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