powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как в SELECTe сделать исключение по полю?
20 сообщений из 20, страница 1 из 1
Как в SELECTe сделать исключение по полю?
    #34073170
Igrok4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть таблица: Np N(3), Kom N(7)
Нужен селект который в курсор в поле Sum_Np записал бы количество строк с неповторяющимися значениями, а в Sum_Kom сумму всех значений поля Kom.
Спасибо!
...
Рейтинг: 0 / 0
Как в SELECTe сделать исключение по полю?
    #34073213
Igrok4Есть таблица: Np N(3), Kom N(7)
Нужен селект который в курсор в поле Sum_Np записал бы количество строк с неповторяющимися значениями, а в Sum_Kom сумму всех значений поля Kom.
Спасибо!
ИМХО, одним запросом здесь не обойтись, т.к. в SUM_NP - количество НЕПОВТОРЯЮЩИХСЯ значений, а в SUM_KOM - сумма ВСЕХ значений (в т.ч. и повторяющихся!!!).
Скорее всего здесь будет что-то типа:
Код: plaintext
1.
2.
3.
4.
5.
select count(*) as cnt from (select distinct NP from table1) ;
into cursor query1 nofilter
select sum(KOM) as sm_kom from table1 ;
into cursor query2 nofilter
insert into result (SUM_NP,SUM_KOM) values (query1.cnt,query2.sm_kom)
...
Рейтинг: 0 / 0
Как в SELECTe сделать исключение по полю?
    #34073273
Igrok4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, но два простых запроса это не очень хорошо. Может можно обойтись одним? Или на крайний случай тогда объединением...
...
Рейтинг: 0 / 0
Как в SELECTe сделать исключение по полю?
    #34073322
Igrok4Спасибо, но два простых запроса это не очень хорошо. Может можно обойтись одним? Или на крайний случай тогда объединением...
Не знаю, проканает ли, но можно примерно так:
Код: plaintext
1.
2.
3.
4.
select count(*) as sum_np, sum(km) as sum_kom ;
from (select np,sum(kom) as km from table1 ;
        group by np) ;
into cursor query
...
Рейтинг: 0 / 0
Как в SELECTe сделать исключение по полю?
    #34073995
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igrok4Есть таблица: Np N(3), Kom N(7)
Нужен селект который в курсор в поле Sum_Np записал бы количество строк с неповторяющимися значениями, а в Sum_Kom сумму всех значений поля Kom.
Спасибо!

Код: plaintext
SELECT COUNT(DISTINCT Np), SUM(Kom) FROM MyTab

В первом поле будет количество уникальных значений по полю Np.
...
Рейтинг: 0 / 0
Как в SELECTe сделать исключение по полю?
    #34074035
Igrok4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо! Я почему то думал, что DISTINCT на одно поле не распространяется.
...
Рейтинг: 0 / 0
Как в SELECTe сделать исключение по полю?
    #34074088
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то ВладимирМ
Код: plaintext
COUNT(DISTINCT Np)
к сожалению такой манс в фоксе не пройдет, это не MS SQL
...
Рейтинг: 0 / 0
Как в SELECTe сделать исключение по полю?
    #34074106
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=AlexiS=-то ВладимирМ
Код: plaintext
COUNT(DISTINCT Np)
к сожалению такой манс в фоксе не пройдет, это не MS SQL

а попробовать

Код: plaintext
1.
2.
3.
4.
CREATE CURSOR test (f1 i)
INSERT INTO test VALUES ( 1 )
INSERT INTO test VALUES ( 1 )

SELECT count(distinct f1), f1 FROM test GROUP BY f1
...
Рейтинг: 0 / 0
Как в SELECTe сделать исключение по полю?
    #34074225
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to PaulWist
Вай - опять "обздался" ну никак не привыкну к 9 фоксу.
Просто работаю с MSSQL - запросы в фоксе мало пишу. Вот поэтому как втемяшилось еще с 6 , так и помню.
Кстати в хелпе про новый синтаксис ничего нет (посмотрю еще в "Что нового").
...
Рейтинг: 0 / 0
Как в SELECTe сделать исключение по полю?
    #34074847
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=AlexiS=-to PaulWist
Вай - опять "обздался" ну никак не привыкну к 9 фоксу.
Просто работаю с MSSQL - запросы в фоксе мало пишу. Вот поэтому как втемяшилось еще с 6 , так и помню.
Кстати в хелпе про новый синтаксис ничего нет (посмотрю еще в "Что нового").
Такой синтаксис будет корректным и в VFP6SP5. Проверено. Работает. Насчет более ранних - не скажу. Но, вероятно, будет работать и в FPD. Т.е. это старая примочка. Просто про нее мало кто знает и в HELP она действительно не описана.
...
Рейтинг: 0 / 0
Как в SELECTe сделать исключение по полю?
    #34075072
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо за науку - и ведь что интересно в MSSQL - пользуюсь - а в фоксе - глянул в хелп и так и не попробовал

как говориться век живи - так дураком и помрешь

или вот еще родился "ахфоризм" : "читать хелп не только полезно , но и вредно "
...
Рейтинг: 0 / 0
Как в SELECTe сделать исключение по полю?
    #34075531
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
COUNT(DISTINCT x) в FPD не было.
...
Рейтинг: 0 / 0
Как в SELECTe сделать исключение по полю?
    #34075625
UrriCOUNT(DISTINCT x) в FPD не было.
Э, дарагой! Зачем неправду говоришь, да!
PaulWist
а попробовать
Код: plaintext
1.
2.
3.
4.
5.
CREATE CURSOR test (f1 i)
INSERT INTO test VALUES ( 1 )
INSERT INTO test VALUES ( 1 )

SELECT count(distinct f1), f1 FROM test GROUP BY f1

Я вот поробовал. И удивился - работает!!! (FPD 2.6)
...
Рейтинг: 0 / 0
Как в SELECTe сделать исключение по полю?
    #34117830
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
CREATE CURSOR test (f1 i)
"i" в FPD тоже не было.
...
Рейтинг: 0 / 0
Как в SELECTe сделать исключение по полю?
    #34117944
Urri
Код: plaintext
CREATE CURSOR test (f1 i)
"i" в FPD тоже не было.
А вот здесь я с тобой соглашусь
Но
Код: plaintext
select count(distinct f1),f1 from test group by f1 
в FPD работает 100%! Проверено электроникой!
...
Рейтинг: 0 / 0
Как в SELECTe сделать исключение по полю?
    #34119153
Igrok4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да-а-а, как переменчива жизнь...
Теперь стоит задача делать исключение по двум полям. А это уже не проходит :(
...
Рейтинг: 0 / 0
Как в SELECTe сделать исключение по полю?
    #34119243
Igrok4Да-а-а, как переменчива жизнь...
Теперь стоит задача делать исключение по двум полям. А это уже не проходит :(
Потом надо будет по трем и более... Этим юзерам палец в рот не клади... :)
Делай через подзапрос (в качестве источника данных для запроса) в запросе, либо через два запроса... Потом дешевле выйдет сопровождать, чем один Супер-Пупер-Мега запрос со сложными условиями...
...
Рейтинг: 0 / 0
Как в SELECTe сделать исключение по полю?
    #34120940
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оппа! Вот так история одного заблуждения!
Это я значит 12 лет всякие хитрые программные способы замены того, что в ФПД на самом деле и так есть, изобретал?! Ой-е-ей!
Сейчас уже и не припомню, с чего я решил, что этой конструкции нет, но наверняка не на пустом месте, тестировал, но наверное как-то не так. Моя уверенность была настолько непоколебима, что я даже проверять не полез, когда Станислав С попытался меня вразумить... ;-)
...
Рейтинг: 0 / 0
Как в SELECTe сделать исключение по полю?
    #34120942
hkus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Urri, он просто крут :) Не убивай веру человека в себя
...
Рейтинг: 0 / 0
Как в SELECTe сделать исключение по полю?
    #34121219
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UrriОппа! Вот так история одного заблуждения!
Я тоже придумывал... А потом появился нормально переведенный хелп.
А потом... если кто помнит FPD, к руководствам прилагалась "Викторина SQL".
Это было что-то... хотя вышеописанного там не было.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как в SELECTe сделать исключение по полю?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]