ugrás a tartalomhoz

SOS! Count összefűzött táblákból egy lekérdezésben

ByKa · 2015. Júl. 14. (K), 09.18
Üdv!
A segítségeteket kérném a megoldásban:
Egyetlen lekérdezésben szükségem lenne egy táblázatra, ami a letárolt értékek közül group-olva (sor) és countolva (oszlop) tudok kiiratni.
A táblázatnak így kellene kinéznie:
   | S| E | C | N | K |Összesen
A | 1 | 2 | 4 | 2 | 1 | 	
P | 4 | 6 | 4 | 3 | 2 | 
K | 5 | 3 | 5 | 0 | 0 | 
A táblák (több összefűzött id-kkel, azonosítókkal):
Törzs:
megrendelok [id, nev, kod, ..., koltseghely, ..., szervezet  (A,P,K)]
muveletek [id, muvelet_kod, muvelet_nev, ..., szervezet (S,E,C,N,K)]
kapcsolódó táblák:
megrendelesek [id, rendelesi_szam, megrendelo_kod, megrendelo_nev, megrendelo_koltseghely, ..., lista_id]
ahol megrendelo_kod és nev = a megrendelő azonos mezőivel
munkak[id, megrendeles_id, munka_neve, ...]
ahol megrendeles_id = megr. idéjével
m_tetelek[id, munka_id, tetel_kod, tetel_nev, ..., szervezet (S,E,C,N,K)]
ahol a munka id és a művelet szervezete (kateg) kerül be azonosan.

Tehát olyan összefűzött sub-select-re vagy inner join-ra lenne szükségem, hogy a kimenetben az A és P és K-s megrendelőhöz tartozó műveletek száma (!) szerepel, ahol a műveleti táblában letárolt szervezet (kateg) az s és e és c és n és k.
megrendelo >-->> megrendeles
megrendeles >-->> munkak
munkak >-->> muveletek

Nagyon köszönöm!

(Módosítottam, talán érthető)
 
1

Mi nem megy?

Hidvégi Gábor · 2015. Júl. 14. (K), 11.11
Pontosan mi az, amit nem sikerült megcsinálni?
2

pivot

ByKa · 2015. Júl. 14. (K), 13.26
Üdv.

Köszönöm!

Ilyen kimeneti táblát szeretnék, második napja bújom a netet,
nem for ciklusokkal html-ben kellene kirajzolnom a táblát, hanem egy osx adatbázis alapú szoftver lesz (xcode-cocoa-mamp-mysql) - ezért egy lekérdezésbe kéne fűzzem.

Próbálkozom a Pivot-tal, és subSelect-el, de valahol nem jól kötöm össze a táblákat.
A műveletek táblában vannak a kategóriák (s,k,n,c...) és a megrendelőknek is van egy kat. azonosítója (p,a,k).

A problémám, hogy a műveleteket megelőzi a munkák, a munkákat a megrendelések, és csak itt van rögzítve a megrendelő kódja (pont nem id, de mindegy, egyedi azonosító) és a subselect inner join-jában fennakadok.

Eredményül kellene kapnom, hogy a P kategóriájú megrendelőnek hány darab (count) s kategóriájú megrendelése volt, hány k kategóriájú..., ráadásul időszakra, de ott már fogok tudni szűrni.

Kérlek, segíts, ha kened a mysql-t, ha kérdésed van, csak jelezd.

Köszönöm a segítséged.

eddig ez van a legközelebb:
SELECT      a.szervezet,  
            count(CASE h.szervezet WHEN 'sokszorosito' THEN 1 ELSE 0 END) Sokszorosító,
            count(CASE h.szervezet WHEN 'e' THEN 1 ELSE 0 END) Előkészítő,
            count(CASE h.szervezet WHEN 'c' THEN 1 ELSE 0 END) c,
            count(CASE h.szervezet WHEN 'n' THEN 1 ELSE 0 END) n,
            count(CASE h.szervezet WHEN 'k' THEN 1 ELSE 0 END) k
FROM        lite_m_tetelek h
INNER JOIN  lite_munkak m ON h.munka_id = m.id
INNER JOIN  lite_megrendelesek s ON m.megrendeles_id = s.id
INNER JOIN  megrendelok a ON s.megrendelo_kod = a.kod
GROUP BY    a.szervezet
ORDER BY    a.szervezet