Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zliczanie wszystkich pozycji w kolumnie w danym czasie
duli5
post 5.04.2018, 17:02:45
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 4.04.2018

Ostrzeżenie: (0%)
-----


Witam. Poszukuje pomocy w przy jednym zapytaniu.
Mam taką tabelę:
  1. CREATE TABLE `table` (
  2. `id` int(11) NOT NULL,
  3. `prodId` int(11) NOT NULL,
  4. `bookingAt` datetime NOT NULL,
  5. `equipmentType` varchar(30) NOT NULL,
  6. `shippingAt` datetime DEFAULT NULL
  7. )
  8.  
  9. INSERT INTO `table` (`id`, `prodId`, `bookingAt`, `equipmentType`, `shippingAt`) VALUES
  10. (1, 9911199, '2018-04-05 09:30:03', 'Type1','2018-04-05 14:00:00'),
  11. (2, 9911100, '2018-04-05 08:00:00', 'Type1','2018-04-05 14:10:00'),
  12. (3, 1234563, '2018-04-05 10:05:40', 'Type2', NULL);


Próbuję zliczyć wszystkie występowania wartości w kolumnie `equipmentType` (w tym przykładzie to: Type1 oraz Type2) w określonym odstępie czasu. Dla produktów, które dotarły do magazynu. Oraz te które go opuściły. Do zliczenia tych przychodzących napisałem takie proste zapytanie:
  1. SELECT g1.equipmentType,COUNT(*) AS count FROM TABLE g1
  2. WHERE g1.shippingAt IS NULL AND
  3. g1.bookingAt BETWEEN :FROM AND :TO GROUP BY g1.equipmentType

Dzięki niemu uzyskuję taki wynik:
  1. 0 => array [
  2. "equipmentType" => "Type2"
  3. "count" => "1"
  4. ]

Mam za to problem jak uzyskać taki rezultat dla produktów wysłanych.W tym przypadku filtrem daty musiałby być `shippingAt`. Ale za groma nie wiem jak się za to zabrać sad.gif
Może mi ktoś dopomóc?




Go to the top of the page
+Quote Post
Pyton_000
post 5.04.2018, 17:13:03
Post #2





Grupa: Zarejestrowani
Postów: 7 382
Pomógł: 1305
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


samo `shippingAt IS NOT NULL` ?
Go to the top of the page
+Quote Post
duli5
post 5.04.2018, 17:26:03
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 4.04.2018

Ostrzeżenie: (0%)
-----


Niestety
  1. SELECT g1.equipmentType,COUNT(*) AS count FROM TABLE g1
  2. WHERE g1.shippingAt IS NOT NULL AND
  3. g1.bookingAt BETWEEN :FROM AND :TO GROUP BY g1.equipmentType


nie daje daje rezultatu sad.gif

Chyba, że masz coś innego na myśli
Go to the top of the page
+Quote Post
Pyton_000
post 5.04.2018, 17:35:33
Post #4





Grupa: Zarejestrowani
Postów: 7 382
Pomógł: 1305
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Skoro nie daje rezultatu to znaczy że nie masz rekordów spełniających twoje kryteria czyli
- shippingAt nie jest NULL (zawiera datę)
- bookingAt zawiera się w przedziale dat.
Go to the top of the page
+Quote Post
duli5
post 5.04.2018, 18:01:06
Post #5





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 4.04.2018

Ostrzeżenie: (0%)
-----


Sry,masz rację. Mój błąd facepalmxd.gif Za długo się wpatrywałem w monitor haha.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.06.2018 - 18:42