• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zapytanie MySQL

Object Storage Arubacloud
0 głosów
142 wizyt
pytanie zadane 6 lipca 2015 w SQL, bazy danych przez babiak Obywatel (1,810 p.)
Mam pytanie,

nigdy nie robiłem takiego zapytania w SQL a odpowiedzi znaleźć nie mogę.

To jest moje oryginalne zapytanie które zlicza mi ilość elementów modelu w danych tygodniu:

SELECT COUNT(p.id) as total FROM plan_produkcji p LEFT JOIN tury t ON t.tura = p.tura  WHERE (p.model="xxx"') AND (t.tydzien = "25")

Zrobiłem i działa. Okazało się jednak, że po wyborze tygodnia ma zliczać wszystkie modele z tygodnia oprócz poniedziałku. Za taki kod był bym bardzo wdzięczny. A jeszcze lepiej jak zliczy z np. tygodnia 25 tygodnia wszystkie modele oprócz tych na poniedziałek ale doda poniedziałkowe z tygodnia wyżej - czyli 26.

 

Nie wiem jak się złapać za to w ogóle :/ I czy da się takie zapytanie montować w MySQL.

 

Pozdrawiam!

1 odpowiedź

+2 głosów
odpowiedź 6 lipca 2015 przez Comandeer Guru (600,810 p.)
wybrane 8 lipca 2015 przez babiak
 
Najlepsza
Pewnie jakoś się da kombinując - pokaż strukturę SQL
komentarz 6 lipca 2015 przez babiak Obywatel (1,810 p.)

Dzięki za zainteresowanie ale nie rozumiem do końca po co to. Miałem na myśli czy idzie to jakoś zapisać w ten deseń:

 

SELECT COUNT(p.id) as total FROM plan_produkcji p LEFT JOIN tury t ON t.tura = p.tura  WHERE (p.model="xxx"') AND (t.tydzien = "25") AND (t.tydzien <> "Monday")

i wiadomo, że t.tydzien <> "Monday" zawsze się spełni ponieważ w t.tury przechowuje numer tygodnia czili INT. Chcę Cię tutaj tylko naprowadzić jak ja kombinuję bo to nie działa oczywyście.

 

komentarz 6 lipca 2015 przez Comandeer Guru (600,810 p.)
No to jak nie przechowujesz w bazie danych o dniu tygodnia a jedynie o samym tygodniu, to nie ma tego jak chwycić.
komentarz 6 lipca 2015 przez babiak Obywatel (1,810 p.)
Jest pole "data_produkcji" w tabeli "tury". Defakto osoba dodająca produkty do bazy wpisuję ową datę produkcji przy zamówieniu, a ja w tle wyciągam z tej daty tydzień i zapisuję go to bazy. W celu np. filtrowania danych zamówień po tygodniu. Pomoże to coś ?
komentarz 6 lipca 2015 przez Comandeer Guru (600,810 p.)

Eh, ale jakiego typu jest to pole? Nie dawkuj info, tylko pokaż strukturę SQL, bo bez tego nie ma o czym rozmawiać.

Jeśli jest to pole typu DATE/DATETIME to można zacząć kombinować z zapytaniem.

komentarz 6 lipca 2015 przez babiak Obywatel (1,810 p.)

tabela: plan_produkcji:

id - int(11)

tura - varchar(11)

model - varchar(11)

tabela: tury:

id - int(11)

tura - varchar(11)

data_produkcji - date - wpisuje sobie w formacie (rok-miesiac-dzien)

tydzien - int(11) - tego pola nie uzupełnia wprowadzająca osoba tylko dodaje się w tle a wartość generuje się na podstawie wpisanej daty_produkcji

 

To wszystko. To turach łącze zapytania.

komentarz 6 lipca 2015 przez babiak Obywatel (1,810 p.)
Czyli jest nadzieja, że da się odwołać do daty produkcji zawierającej się w tyg np. 25 i ten dzień nie będzie poniedziałkiem? ;)
komentarz 6 lipca 2015 przez Comandeer Guru (600,810 p.)

Pole tydzien jest najzupełniej zbędne - da się to ogarnąć przy pomocy pola data_produkcji i funkcji "datowych" MySQL (serio, są genialne, a tak mało się je wykorzystuje!).

Coś takiego mniej więcej:

SELECT COUNT(p.id) AS total 
FROM plan_produkcji p 
LEFT JOIN tury t 
ON t.tura = p.tura
WHERE p.model = 'xxx' 
AND 
(
	(
		DATE_FORMAT(t.data_produkcji, '%u') = 25
		AND DATE_FORMAT(t.data_produkcji, '%a') != 'Mon'
	)
	OR
	(
		DATE_FORMAT(t.data_produkcji, '%u') = 25 + 1
		AND DATE_FORMAT(t.data_produkcji, '%a') = 'Mon'
	)
)

 

komentarz 8 lipca 2015 przez babiak Obywatel (1,810 p.)
Dziękuję Ci pięknie! Działa jak natura chciała :)

Podobne pytania

0 głosów
2 odpowiedzi 288 wizyt
0 głosów
1 odpowiedź 1,186 wizyt
pytanie zadane 25 lutego 2017 w SQL, bazy danych przez kacperl95 Obywatel (1,980 p.)

92,555 zapytań

141,402 odpowiedzi

319,540 komentarzy

61,938 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...