SQL hakulauseita MERGE

Mergetään sivun /wiki/spaces/WIKI/pages/1301217588 kanssa

SQL hakulausekkeita käytetään Export tietojen tuontityökalussa.


Sisällysluettelo:


Listaa tuotteet joiden varastosaldo on negatiivinen

Listaa tuotenumeron, nimen, varastosaldon ja tuoteryhmän tuotteilta joiden saldo on vähemmän kuin nolla

select t.nimi,t.numero,t.ryhma,v.saldo from tuote t, varsaldo v where t.numero=v.tuote and v.saldo < 0 order by t.ryhma asc


Listaa asiakkaiden sähköpostit

Listaa kaikkien asiakkaiden sähköpostit esim. jälkimainontaa varten.

select a.asiakas as 'Numero', a.nimi as 'Nimi', a.nimi2 as 'Nimi2', a.sahkoposti as 'Sähköposti'
from asiakas a
where a.mainoskielto = '0' and a.sahkoposti <> ''
union all
select y.asiakasnro as 'Numero', y.nimi as 'Nimi', y.nimi as 'Nimi2', y.sahkoposti as 'Sahkoposti'
from yhthlo y
where asiakasnro in (select asiakas from asiakas where mainoskielto = '0' and sahkoposti <> '')
order by numero asc ;


Tuotteet jotka EIVÄT ole verkkokaupassa

Hakee tuotenumeron ja tuotenimen tuotteilta jotka EIVÄT ole verkkokaupassa, eivätkä ole passiivisia.

select t.numero, t.nimi, t.nimi2 from tuote t where t.verkkokauppa=0 and t.passiivinen=0


Kuvattomat tuotteet verkkokaupassa

Hakee tuotenumeron ja tuotenimen tuotteilta jotka ovat verkkokaupassa, eivät ole passiivisia ja niiltä puuttuu tuotekuva.

select t.numero, t.nimi from tuote t where t.verkkokauppa=1 and t.passiivinen=0 and t.numero not in (select tuotenro from tuotekuv k where k.tuotenro = t.numero)


Tuotteet ilman pitkää ja lyhyttä kuvausta kuvausta verkkokaupassa

Hakee tuoteet jotka ovat verkkokaupassa ja joilta uupuu sekä lyhyt kuvaus että pitkä kuvaus eivätkä ole passiivisia. Tuotteelta haetaan tuotenumero, nimie, pääryhmä ja tuoteryhmä.

select t.numero, t.nimi, t.paaryhma, t.ryhma from tuote t where t.passiivinen=0 and t.verkkokauppa=1 and t.numero not in ( select tuotenro from tuotetxt where otsikko='KUVAUS' and otsikko='LYHYT_KUVAUS')


Tuotteen kuvausten tuonti exceliin muokkaamista varten

Hakee tuotteet skj:n tuoteryhmistä ja joilla on lyhyt ja/tai pitkä kuvaus. Vaihda hipsujen sisään omat tuoteryhmäsi numerot ('61','62').

Select numero, nimi, (select teksti from tuotetxt where tuotenro=numero and otsikko='KUVAUS') as kuvaus from tuote where ryhma in ('61','62') order by numero asc;


Tuotteet ilman pitkää kuvausta verkkokaupassa

Hakee tuoteet jotka ovat verkkokaupassa ja joilta uupuu kuvaus eivätkä ole passiivisia. Tuotteelta haetaan tuotenumero, nimie, pääryhmä ja tuoteryhmä.

select t.numero, t.nimi, t.paaryhma, t.ryhma from tuote t where t.passiivinen=0 and t.verkkokauppa=1 and t.numero not in ( select tuotenro from tuotetxt where otsikko='KUVAUS')


Tuotteet ilman lyhyttä kuvausta verkkokaupassa

Hakee tuoteet jotka ovat verkkokaupassa ja joilta uupuu lyhyt kuvaus eivätkä ole passiivisia. Tuotteelta haetaan tuotenumero, nimie, pääryhmä ja tuoteryhmä.

select t.numero, t.nimi, t.paaryhma, t.ryhma from tuote t where t.passiivinen=0 and t.verkkokauppa=1 and t.numero not in ( select tuotenro from tuotetxt where otsikko='LYHYT_KUVAUS')


Tilatut tuotteet asiakastiedolla päivämäärä rajauksella

Hakee tuote, tilaus ja asiakastietoja päivämäärä rajauksella myyntitilaukselta.

select mtr.tilausnro, mtr.rivinro, mtr.tuote, mtr.nimi, mtr.maara, mt.tilauspaiva, mt.extraid, mt.toimitusasiakas, a.nimi, a.nimi2, a.sahkoposti, mt.KA_puh, mt.KA_osoite, mt.KA_postinro, mt.KA_postitmp from mtrivi mtr, mt mt, asiakas a where mt.numero=mtr.tilausnro and a.asiakas=mt.toimitusasiakas and mt.tilauspaiva between '2023-01-01' and '2023-12-31';

Tuotteet ilman ryhmiä verkkokaupassa

Hakee tuotteet, jotka ovat verkkokaupassa ja joilta puuttuu pääryhmä, tuoteryhmä sekä aliryhmä. Tuotteilta haetaan tuotenumero, nimi sekä nimi2

select numero,nimi,nimi2 from tuote where paaryhma = 0 and ryhma = 0 and aliryhma = 0 and verkkokauppa = 1;


Nollahintaiset tuotteet verkkokaupassa

Hakee tuotenumeron, tuotenimen ja hinnan tuotteilta jotka ovat verkkokaupassa, eivät ole passiivisia ja hinta on 0€ tai alle.

select t.numero, t.nimi, t.hinta from tuote t where t.verkkokauppa=1 and t.passiivinen=0 and t.hinta<=0


Lajitelmatuotteiden varaston minimi ja maksimi arvot

Listaa lajitelmatuotteille annetut minimi ja maksimi arvot varastosta 1. Muuta punaisella merkittyä varastonumeroa jos haluat tarkastella toista varastoa.

select t.numero,t.nimi,l.minimi1,l.maksimi,l.varasto from "LAJVS" l, tuote t where t.numero=l.tuote and (l.minimi1 <> '' or l.maksimi <> '') and l.varasto=1 and t.passiivinen<>1


Kaikki tuotteet painon mukaan järjestettynä

Listaa kaikki tuotteet jotka eivät ole passiivisia painon mukaan järjestykseen.

select numero, nimi, bruttopaino, ryhma, paaryhma from tuote where passiivinen <> 1 order by bruttopaino desc


Sellaisten tuotteiden kokonaismäärä, jotka eivät ole passiivisia

Antaa ei-passiivisten tuotteiden määrän.

select count(numero) from tuote where passiivinen <> 1


Laajat tuotetiedot koko tuotetietokannasta

Vie laajat tuotetiedot. Tiedostoa voidaan käyttää hyödyksy mm. tuotetuontityökalun kanssa.

select t.NUMERO as 'Tuotenumero',
t.LisaTunnus,
vk.VIIVAKOODI as 'Viivakoodi',
t.TOIMTUNNUS as 'Tilauskoodi',
pr.Nimi as 'Pääryhmä',
tr.Nimi as 'Tuoteryhmä',
ar.Nimi as 'Aliryhmä',
tp.Nimi as 'Tuoteperhe',
t.NIMI as 'Nimi',
t.NIMI2 as 'Nimi 2',
t.Verkkokauppa as 'Verkkokauppatuote',
txtnimi.Teksti as 'Verkkokauppanimi',
toim.Nimi as 'Toimittaja',
t.YKS as 'Tuotteen yksikkö',
t.KESKIHINTA as 'Ostohinta',
t.HINTA as 'Myyntihinta',
valm.Nimi as 'Valmistaja',
t.Passiivinen as 'Tuotteen status',
laji1.Lajitelma as 'Lajitelma 1',
laji2.Lajitelma as 'Lajitelma 2',
t2.multituote_tuote as 'Päätuote',
om.OminaisuusNimi as 'Ominaisuus 1',
omarvot.Selite as 'Ominaisuusarvo 1',
convert(txtlkuvaus.Teksti, SQL_VARCHAR) as 'Lyhyt kuvaus',
convert(txtpkuvaus.Teksti, SQL_VARCHAR) as 'Pitkä kuvaus',
v.SALDO as 'Varastosaldo',
v.MINIMI as 'Hälytysraja',
v.MAXVARASTO as 'Varaston yläraja'
from TUOTE t
left join TUOTE2 t2 on t2.NUMERO = t.NUMERO
left join PRYHMA pr on t.PAARYHMA = pr.Nro
left join TRYHMA tr on t.RYHMA = tr.Nro
left join ALIRYHMA ar on t.AliRyhma = ar.Nro
left join TVKOODI vk on vk.TUOTE = t.NUMERO
left join TUOTETXT txtnimi on txtnimi.TuoteNro = t.NUMERO and txtnimi.Otsikko = 'NIMI'
left join TUOTETXT txtlkuvaus on txtlkuvaus.TuoteNro = t.NUMERO and txtlkuvaus.Otsikko = 'LYHYT_KUVAUS'
left join TUOTETXT txtpkuvaus on txtpkuvaus.TuoteNro = t.NUMERO and txtpkuvaus.Otsikko = 'KUVAUS'
left join TOIMITTAJA toim on toim.Tunnus = t.TOIMITTAJA
left join VALMISTA valm on valm.Tunnus = t.VALMISTAJA
left join VARIKOKOLAJI laji1 on laji1.Nro = t.KokoLajitelma
left join VARIKOKOLAJI laji2 on laji1.Nro = t.VariLajitelma
left join TUOTEOMI tomi on tomi.Tuote = t.NUMERO
left join OMINAISUUDET om on om.OminaisuusId = tomi.OminaisuusId
left join OMINAISUUSARVOT omarvot on omarvot.OminaisuusArvoId = tomi.ValittuArvo
left join TPERHE tp on tp.Numero = t.TuotePerhe
left join VARSALDO v on v.TUOTE = t.NUMERO and v.Varasto = 1;


Tuotteet ilman valmistajaa verkkokaupassa

select numero, nimi from tuote where verkkokauppa=1 and passiivinen=0 and valmistaja = '';


Tuotteet uudelleen ryhmittelyä varten

Lause hakee tuotteet ja ryhmät mihin ne kuuluu, jotta tuotteet voidaan ryhmitellä uudestaan esim. verkkokaupam tuotepuuta uusiessa.

select NUMERO as 'Tuotenumero',Nimi, Passiivinen, toimtunnus,
PAARYHMA as 'Pääryhmä',
(select nimi from pryhma where tuote.paaryhma = nro) as 'Pääryhmä_nimi',
RYHMA as 'Tuoteryhmä',
(select nimi from tryhma where tuote.ryhma = nro) as 'Tuoteryhmä_nimi',
AliRyhma as 'Aliryhmä',
(select nimi from aliryhma where tuote.aliryhma = nro) as 'Alituoteryhmä_nimi',
NULL as 'Uusi pääryhmä', NULL as 'Uusi tuoteryhmä', NULL as 'Uusi aliryhmä'
from Tuote;


Toimitukset Ahvenanmaalle

Lause hakee Ahvenanmaan tilaukset toimituspäivämäärä järjestyksessä tietyllä aikavälillä. Voit muokata päivämääriä kohdassa m.toimituspaiva between '2018-05-01' and '2018-05-30'. Näistä ensimmäinen on haun alkupäivämäärä (formaatissa vuosi-kk-pp) ja jälkimmäinen haun viimeinen päivä. Voit hakea myös muita toimitusmaita muuttamalla m2.ka_maa='AX' kohda ax joksikin muuksi maatunnukseksi esim. US

select m.numero as 'Myyntitilaus nro', a.nimi as 'Asiakas', m.tilauspaiva, m.toimituspaiva, m.toimitettusumma as 'Yhteensa' from MT m, mt2 m2, asiakas a where a.asiakas=m.toimitusasiakas and m.numero=m2.mt2numero and m2.ka_maa='AX' and (m.toimitustila = 3 OR m.toimitustila=4) and m.toimituspaiva between '2018-05-01' and '2018-05-30' order by m.toimituspaiva ASC


Päättyneet kampanjat 

select  * from kamppanja where loppu < '20180530' and lopput > '0' ;– Listaa kamppanja taulusta rivit joiden päättymispäivä on pienempi kuin annett päivämäärä, mutta ei tyhjä (voimassa oleva)

Lista tuotteista jotka ovat passiivisia ja verkkokaupassa ja kamppanja on päättynyt ennen annettua päivämäärää:
select k.tuote, k.tunnus,k.alku,k.loppu,k.myymala from kamppanja k
left join tuote t on t.numero = k.tuote
where k.loppu < '20180530' and t.passiivinen = 1 and t.verkkokauppa = 1;


Verkkokaupassa olevien tuotteiden varastosaldot valmistajittain (ei lajitelmat)

select varasto, tuote,nimi, saldo, varattu, tilattu, verkkokauppa,toimittaja from "VARSALDO" left join tuote on varsaldo.tuote = tuote.numero where tuote.verkkokauppa = 1 order by toimittaja;