[MySQL][MSSQL][SQL]Jedna komenda SELECT |
[MySQL][MSSQL][SQL]Jedna komenda SELECT |
29.02.2012, 11:27:05
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 29.02.2012 Ostrzeżenie: (0%) |
Mam powiedzmy tabele "obsluga". W tej tabeli znajduje sie kolumna "urzadzenie". Kolumna ta moze przyjmowac wartosci A, B lub C, ale czasem moze sie zdarzyc, ze pojawi sie tez wartosc D. Czy mozna napisac jedna komende SELECT, przy pomocy ktorej moge wyszukac wierszy z wartoscia A o ile w kolumnie nie ma wartosci D. W sytuacji kiedy sa wartosci D to wyszuka mi wiersze nie z wartoscia A tylko z D.
|
|
|
29.02.2012, 11:30:21
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 455 Pomógł: 6292 Dołączył: 27.12.2004 |
Czy to jest podchwytliwe pytanie?
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
29.02.2012, 11:31:31
Post
#3
|
|
Grupa: Zarejestrowani Postów: 239 Pomógł: 20 Dołączył: 19.02.2010 Ostrzeżenie: (0%) |
jak moze być wartosc a lub b lub c lub d to jak mozesz miec jednoczesnie a i d jak chcesz sprawdzic czy jest a i d jednoczesnie
|
|
|
29.02.2012, 11:37:25
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 476 Pomógł: 245 Dołączył: 1.07.2009 Skąd: Bydgoszcz Ostrzeżenie: (0%) |
nospor, poli25 chyba nie zrozumieliście kolegi...
EDIT: Nie wydaje mi się żeby było możliwe wykonanie tego jednym zapytaniem. Ten post edytował sadistic_son 29.02.2012, 11:39:03 -------------------- Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami... -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc! -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- |
|
|
29.02.2012, 11:40:16
Post
#5
|
|
Grupa: Zarejestrowani Postów: 239 Pomógł: 20 Dołączył: 19.02.2010 Ostrzeżenie: (0%) |
byc może;)
... Czy mozna napisac jedna komende SELECT, przy pomocy ktorej moge wyszukac wierszy z wartoscia A o ile w kolumnie nie ma wartosci D. a wczesniej jest napisane ze moze byc tylko a,b,c,lub d wiec dla mnie nie logiczne to jest p.s. moze chodzilo o to SELECT * FROM obslua WHERE urzadzenie = 'd' and urzadzenie <> 'a' Ten post edytował poli25 29.02.2012, 11:43:57 |
|
|
29.02.2012, 11:56:54
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 476 Pomógł: 245 Dołączył: 1.07.2009 Skąd: Bydgoszcz Ostrzeżenie: (0%) |
a wczesniej jest napisane ze moze byc tylko a,b,c,lub d wiec dla mnie nie logiczne to jest ID | urzadzenie | costam | 1 | A | sjbcbfd | 2 | B | 34dr24 | 3 | A | dddfff | 4 | D | ggggg | A teraz? Gdyby w tabeli były tylko ekordy 1,2 i 3 to kolega chciałby pobrać 1 i 3. Natomiast kiedy są 4 rekordy to chce pobrać już tylko rekord z ID = 4 . Dobrze rozumiem? EDIT: p.s. moze chodzilo o to No to to przecież masło maślane ;P Skoro urządzenie jest równe D to przecież zawsze będzie różne od A.
SELECT * FROM obslua WHERE urzadzenie = 'd' and urzadzenie <> 'a' Ten post edytował sadistic_son 29.02.2012, 11:57:10 -------------------- Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami... -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc! -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- |
|
|
29.02.2012, 12:00:10
Post
#7
|
|
Grupa: Zarejestrowani Postów: 239 Pomógł: 20 Dołączył: 19.02.2010 Ostrzeżenie: (0%) |
no ale pytanie tez jest masłem więc moze odpowiedz z masłem tez jest ok
|
|
|
29.02.2012, 12:01:19
Post
#8
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D |
A ja myślę, że chodzi o rozwinięcie pierwszego posta nospora, czyli...
Wybieramy wszystkio z tabeli co ma A, albo D, tylko że teraz mamy sens całego wykonać... Jeśli istnieje taki wiersz w kolumnie obsługa, gdzie jest jednocześnie A i D, to ma wziąć pod uwagę wiersz z D, olewając wiersz z A. I wyślę, że jest to wykonalne, ale jako że nie znamy dokładniejszej struktury tabeli to trudno powiedzieć jak mogło by to zapytanie wyglądać, gdyż albo można będzie użyć kombinacji z grupowaniem albo union. Ale bez struktury i tego gdzie są jakieś klucze, trudno powiedzieć i podać gotowe zapytanie. Ogólnie sens byłby taki "od tyłu"... Wybierz wszystkie rekordy z D, a potem dorzuć wszystkie rekordy, które mają A i nie posiadają jednocześnie D. Przynajmniej tak to według mnie wyglada Wyjaśnienie 2: Może też być tak, jak rozumuje sadistic_son i jak wprost napisał autor: Jeśli w tabeli są tylko w kolumnie wartości A, B, C, to wyszukujemy jedynie tych z A. Ale jeśli w kolumnie zostanie wykryta choć jeden wiersz z wartością D, to tylko tych wierszy z D należy wyszukać. -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
29.02.2012, 12:01:32
Post
#9
|
|
Grupa: Moderatorzy Postów: 36 455 Pomógł: 6292 Dołączył: 27.12.2004 |
poli przestan już. Niech autor wyjaśni o co mu chodzi dokładnie. Póki co odpowiedź sadistic_son wydaje się być najbliżej prawdy. No ale to musi rozstrzygnąć autor pytania a nie my między sobą.
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
29.02.2012, 12:14:13
Post
#10
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 29.02.2012 Ostrzeżenie: (0%) |
nie spodziewalem sie tak szybkiej reakcji, jakbym wsadzil kij w mrowisko. Dobrze mnie zrozumial Sadistic_son. Wiec czy jest to mozliwe w jednym zapytaniu czy trzeba juz kombinowac? (sam myslałem o sprawdzeniu to w ten sposób co Sadistic_son, ze wpierw sprawdzam D a jak nie to biore A. Nie znam dobrze możliwości języka zapytań SQLa. A chcę jak najwięcej przerzucić na bazę danych)
Ten post edytował mike75 29.02.2012, 12:22:01 |
|
|
--mike75-- |
2.03.2012, 19:50:12
Post
#11
|
Goście |
Udało mi się rozwiązać problem. Wszystko w jednym zapytaniu przy wykorzystaniu funkcji CASE i podzapytań. Trochę to trwało, bo wcześniej nie bawiłem się SQLem i nie wiedziałem jakie możliwości w tym drzemią.
Dzięki wszystkim za pomoc. |
|
|
Wersja Lo-Fi | Aktualny czas: 24.04.2024 - 23:25 |