DarkSQL by Darkleo.com

DarkSQL

Select


Wie viele unterschiedliche Artikel haben einen Lagerplatz (artikellager)

select count(distinct artikel_nr)
from artikellager
where lager_nr is not null;

Welche Vertreter haben Aufträge im Jahr 2001 abgeschlossen (jeden nur 1x nennen)

select distinct vertreter_nr
from auftraege
where auftrag_datum between '01-01-2001 ' and '31-12-2001';

Bei welchen Kunden (Kundennummer, Name, Datum der letzten Auskunft) des Postleitzahlbereiches 5.. – 9.. wurde seit mehr als einem Jahr keine Kreditauskunft mehr eingeholt

select kunde_nr, name, datum_kreditauskunft
from kunden
where plz_strasse between 50000 and 99999
and current_date-datum_kreditauskunft >365;

Welche Aufträge wurden in 2000 oder 2001 abgeschlossen (Auftragdatum in dem Bereich) (Auftragsnummer, Kunde ausgeben), Ausgabe sortiert nach Datum. Verwenden Sie folgende Ausdrücke (3 Lösungen): between, in, extract.

select auftrag_nr, kunde_nr
from auftraege
where extract(year from auftrag_datum) between 2000 and 2001 ;

select auftrag_nr, kunde_nr
from auftraege
where auftrag_datum between '01-01-2000' and '31-12-2001' ;

select auftrag_nr, kunde_nr
from auftraege
where substr(auftrag_datum,7,2) in ('00', '01');

Ändern Sie den Spaltennamen „bestand_lager" der Tabelle artikellager in „bestand" (neue tabelle, umkopieren!)

create table hilfstabelle( artikel_nr varchar2(27), lager_nr int, bestand_lager int);
insert into
hilfstabelle select artikel_nr, lager_nr, bestand_lager from artikellager;
drop table artikellager cascade constraints;

create table artikellager( artikel_nr varchar2(27) not null, lager_nr int not null, bestand int not null);
insert into
artikellager select artikel_nr, lager_nr, bestand_lager from hilfstabelle;
drop table hilfstabelle;

Erzeugen Sie eine Liste aller unbezahlten Rechnungen (Nummer, Rechnungsdatum, Wert). Wenn das Datum die NULL-Marke enthält, geben Sie stattdessen die Zeichenfolge „kein Datum" aus.

select rechnung_nr,
case
 when
zahldatum is null then  'kein Datum'
 else cast (zahldatum as char(10))
end,
rechnung_betrag
from rechnungen;

Listen Sie von allen Artikeln die Nummer, den Verkaufs- und den Einkaufspreis auf. Wenn letzterer größer als 60% des Verkaufspreises ist, geben Sie hinter die Daten des Artikels das Zeichen „*" aus.

select artikel_nr, verkaufspreis, einkaufspreis ,
 case
  when
einkaufspreis > verkaufspreis*0.6 then '* '
  else ' '
 end
from
artikel ;

Listen Sie alle Auftragspositionen mit Auftragsnummer, Positionsnummer, Artikelnummer, Preis, Menge sowie dem Positionswert (Menge * Preis) . Runden Sie den Positionswert auf Euro. Nennen Sie die Spalte auch „Positionswert"

select auftrag_nr,position_nr, artikel_nr, preis, menge, round(preis * menge,0) positionswert
from auftragspositionen;

Welche Aufträge (alle Daten anzeigen) wurden am 1. Tag eines beliebigen Monats oder Jahres angelegt (Auftragsdatum)

select auftrag_nr
from auftraege
where substr(auftrag_datum,0,2)='01';

MS-SQL:
where substring(auftrag_datum,0,2)='01' )

select auftrag_nr
from auftraege
where auftrag_datum like ’01%'

Ermitteln Sie je Artikel die Gewinnspanne (Verkaufspreis-Einkaufspreis) und geben Sie die Artikel (alle Daten) sowie die Gewinnspanne aus, bei denen die Gewinnspanne < 80 % des Verkaufspreises ist. Sortieren Sie die Ausgabe nach der Gewinnspanne absteigend.

select *, (verkaufspreis-einkaufspreis) Gewinnspanne
from artikel
where verkaufspreis-einkaufspreis < verkaufspreis*0.8
order by gewinnspanne desc;

Oracle:

select artikel_nr, bezeichnung,
warengruppe,verkaufspreis,
einkaufspreis, lieferzeit,
bestand_lager, bestand_minimum,
jahresumsatz, vorjahresumsatz, (verkaufspreis-einkaufspreis) Gewinnspanne
from artikel
where verkaufspreis-einkaufspreis < verkaufspreis*0.8
order by gewinnspanne desc;

Bei welchen Kunden (Nummer, Name, Kreditlimit, Saldo_offene_Rechnungen ausgeben) , bei denen bereits ein Kreditlimit bzw. das Saldo eingegeben wurde, ist das Saldo gleich dem Kreditlimit.

select kunde_nr, name, kreditlimit, saldo_offene_rechnungen
from kunden
where saldo_offene_rechnungen is not null
and
kreditlimit is not null
and
saldo_offene_rechnungen = kreditlimit;