|
Запрос IIF
|
|||
---|---|---|---|
#18+
Добрый день. Использую vfpoledb в программе на c#, есть запрос: SELECT a.tn, sum(IIF(vid=99 OR vid=38, a.sum, 0)) as s1, sum(IIF(vid=1 OR vid=2, a.sum, 0)) as s2 FROM D:\zug.dbf a GROUP BY a.tn В качестве условия удобнее было бы использовать формат "vid in (99,38)", но при использовании in внутри iif получаю ошибку. Для выполнения подобного рода запроса единственный вариант использовать OR для перечисления условия или возможны варианты с in? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2012, 14:35 |
|
Запрос IIF
|
|||
---|---|---|---|
#18+
inlist() Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2012, 14:42 |
|
Запрос IIF
|
|||
---|---|---|---|
#18+
inlist не поддерживает более 25 элементов в условии, получаю ошибку, а мне как минимум нужно 30. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2012, 15:21 |
|
Запрос IIF
|
|||
---|---|---|---|
#18+
mr.zlodeyinlist не поддерживает более 25 элементов в условии, получаю ошибку, а мне как минимум нужно 30. Есть такое ограничение, тогда через курсор с индексом: Код: sql 1. 2. 3. 4. 5. 6. 7.
или с джоинами тоже самое Код: sql 1. 2. 3.
только во втором случае надо проверять чтоб задвоений не было в FilterVid, иначе неправильно посчитает. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2012, 16:09 |
|
Запрос IIF
|
|||
---|---|---|---|
#18+
В приниципе, никто не мешает объединить несколько inlist() через OR Код: sql 1.
В каждом отдельном inlist() не более 25 значений, но через OR можно объединить бОльшее количество. Хотя, это фактически тот же вариант записи через OR все 30 значений, но более сложный. Если команда формируется во вне, то я бы не заморачивался и оставил 30 сравнений, объединенных через OR. PS: В принципе, можно еще через массивы попробовать, но не знаю, пройдет ли это через OLEDB Код: sql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2012, 18:32 |
|
|
start [/forum/topic.php?fid=41&fpage=53&tid=1583508]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 147ms |
0 / 0 |