Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 21:51 07.07.25 
Компютри и Интернет
   >> Бази данни
*Кратък преглед

Тема Малко помощ за SQL заявка за MySQL 3.23?нови  
Автор bira_more (бира)
Публикувано28.01.04 14:35



Имам таблица в която се записват резултати от опити за зареждане на код в pcb.
Основните полета са
pcb (varchar) - ID на PCB'то
chanch (timestamp)
result (int) 0 - успешно зареждане, всяко друго число е код на грешка
В таблицата може да има един запис за PCB или няколко, ако са няколко може един от тях да е успешен, може да няма успешен

Тоест
select * from remoteload where chanch>'20040126235959' and result =0
Ще извади всички успешни зареждания.
Има ли някакъв начин да избера само неуспешните?
Тоест PCB които нямат нито едно успешно зареждане.
Мерси предварително



Тема Re: тоестнови [re: bira_more]  
Автор salle (един такъв)
Публикувано28.01.04 18:11



Ако ненулевите кодове са винаги по-големи от нула:

SELECT ... MIN( ) AS min_code .... HAVING min_code > 0;


select * from remoteload where chanch>'20040126235959' and result =0

SELECT pcb, MIN(result) AS min_result
FROM remoteload
WHERE chanch>'20040126235959'
GROUP BY pcb
HAVING min_result > 0;

За да извадиш целите редове се иска малко повече гимнастика понеже това си е типична задачка за вложена заявка.

т.нар. MAX-CONCAT трик



Редактирано от salle на 28.01.04 18:24.



Тема Мерсинови [re: salle]  
Автор bira_more (бира)
Публикувано28.01.04 18:35



ама тъпото е че част от кодовете са по малки от нула, а другите по големи....
Е ще се справя - 300 устройства, 5 "дефектни"
С един ордер по PCB и след това много малко гимнастика в OpenOfice - и съм готов - щото то 5 дефекта ще се хванат по бързо от колкото го описвам ама :)



Тема Re: пак става ...нови [re: bira_more]  
Автор salle (един такъв)
Публикувано29.01.04 00:09



ама трябва вместо MIN() да измислиш някоя по-сложна комбинация ...

така като се замисля безкрайно сложното MIN(ABS()) ще свърши работа ...

SELECT pcb, MIN(ABS(result)) AS min_result
FROM remoteload
WHERE chanch>'20040126235959'
GROUP BY pcb
HAVING min_result > 0;



Тема Много мерсинови [re: salle]  
Автор bira_more (бира)
Публикувано29.01.04 20:40



Утре ще го пробвам и ще пиша резултат.
Ма днес съм на много бири и ... :)

Пробвах го - не мога а кажа все още дали мога да му вярвам ама май е това което ми трябва :))
Щот си имам един - два други бъга и няколко засечки :)))

Ми мнго мерси :)))

Редактирано от bira_more на 29.01.04 20:46.



Тема Re: Много мерсинови [re: bira_more]  
Автор $burov (начинаещ)
Публикувано29.01.04 21:10



С риск да се изложа за пореден път в този форум, това не ти ли върши работа:

select * from remoteload where chanch>'20040126235959' and result != '0'

Така би трябвало да получиш всички записи, при които result не е нула, независимо дали са по-малки или по-големи от нула, просто - различни от нула.

Или може би
select distinct(pcb) from remoteload where chanch>'20040126235959' and result != '0'

Редактирано от $burov на 29.01.04 21:12.



Тема Re: Много мерси [re: $burov]  
Автор voyager (прасе в космоса)
Публикувано29.01.04 21:58



В първия момент и аз си помислих за това. Погледни го пак и ще видиш защо няма да помогне



Тема Re: И аз така в първия момент :)нови [re: voyager]  
Автор salle (един такъв)
Публикувано29.01.04 23:06



Даже го пуснах тук ата се наложи после да преписвам...

Хичи не се излагаш. Той малко неясно го е написал. Ключът към целия проблем е ей тука:

"Тоест PCB които нямат нито едно успешно зареждане. "



Тема Re: И аз така в първия момент :)нови [re: salle]  
Автор ro6avia (ламерясал)
Публикувано30.01.04 14:27



А бе аз мислих нещо от сорта на JOIN на таблицата към самата себе си
където в лявата и част да са всички дето са !=0 а в дясната =0
и тези които имат само лявата част -> демек нямат 0 като резултат да излязат
ама не ми остана време да го сътворя

Е тук нищо няма:



Тема Определено действа заявката на salleнови [re: ro6avia]  
Автор bira_more (бира)
Публикувано30.01.04 15:15



И аз понеже съм си недоверчив - направих няколко проби :
select * from remoteloads where chanch>'20040126235959' group by pcb
Така хващам колко уникални PCBта са зареждани
select * from remoteloads where chanch>'20040126235959' and result=0 group by pcb
Хващам колко са заредени успешно
Разлика - 4 бр (едно от които си го бях добавил ръчно да знам поне един грешен резултат със сигурност :)
И точно тези четири броя ми излизат със заявката на salle.




*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2025 Dir.bg Всички права запазени.