Topic: Union per daug duomenų

Sveiki,

tarkim yra periodas, kuris išrenkamas pagal tam tikrą kodą. Reikia išrinkti ir kitus periodus su kitais kodais, kurie įvyko esant pirmajam.

Detalenė info su pvz: https://docs.google.com/spreadsheet/ccc … EUnc#gid=0

Raudonas periodas (-ai) neturi papulti. Unio metu turi būti:
- ta pati pradžios ir pabaigos data,
- tas pats kientas,
- tas pats numeris.

Skirtis:
- fakto data,
- tipas.

Kas ne taip surišta?

Re: Union per daug duomenų

O kodėl netinka senas geras JOIN'as bei paprastas  OR?

SELECT * FROM klientai as klientas
LEFT JOIN numeriai as numeris ON (klienas.id == numeris.kliento_id)
LEFT JOIN faktai as faktas ON (klienas.id == faktas.kliento_id)
WHERE
(numeris.pradzia >  '2008.07.01' AND numeris.pabaiga <  '2008.07.01' AND tipas != 11) OR
(numeris.pradzia >  '2006.07.01' AND numeris.pabaiga <  '2008.07.01' AND tipas != 13)

Re: Union per daug duomenų

Lukas wrote:

O kodėl netinka senas geras JOIN'as bei paprastas  OR?

SELECT * FROM klientai as klientas
LEFT JOIN numeriai as numeris ON (klienas.id == numeris.kliento_id)
LEFT JOIN faktai as faktas ON (klienas.id == faktas.kliento_id)
WHERE
(numeris.pradzia >  '2008.07.01' AND numeris.pabaiga <  '2008.07.01' AND tipas != 11) OR
(numeris.pradzia >  '2006.07.01' AND numeris.pabaiga <  '2008.07.01' AND tipas != 13)

nelabai supratau 'as' panaudojimo prasmes

var_dump(0 == 'tekstas'); // TRUE. ar zinai kodel? :)