Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

SQL Logik - Abfrage - Array - Lieferanten - Artikel - Umsatz Tabelle - Übersicht

Frage Entwicklung Datenbanken

Mitglied: Midivirus

Midivirus (Level 2) - Jetzt verbinden

17.05.2010, aktualisiert 15:42 Uhr, 4508 Aufrufe

Hallo Meisters,

brauche ein bischen Denkfutter, da ich da so nicht weiter komme!

Situation:
Anzahl Lieferanten (fest),
Anzahl Kunden (fest),
Bestellungen von Kunden mittels Auswahl aus dem Pott.
Lieferanten bekommen Meldung, wenn in Bestellung für Sie dabei ist.
Natürlich hab ich dann im Januar mal 60 Lieferanten, im Februar mal 70.

Ergebnis soll sein, dass ich eine Tabelle erhalte, die aussieht:

KUNDE Monat 01 Monat 02 ...
Alpha Umsatz Bestellungen Umsatz Bestellungen
Beta Umsatz Bestellungen Umsatz Bestellungen
Omega Umsatz Bestellungen Umsatz Bestellungen
..
..

Bisher hab ich das so gemacht:
3 Arrays: Kunde, Umsatz, Bestellungen
wenn immer die gleiche Anzahl an Lieferanten vorhanden wäre (worauf nicht geachtet wurd), wäre es nicht zu dem Problem gekommen.

Kunde = Alpha, Beta, Omega
Umsatz = €uro
Bestellungen = Anzahl Bestellungen

$anzahlkunden = count($kunde);
($i+($j*$anzahlkunden))
j = laufender Monat 1 - 5
i = Kunde (alpha ...)

Somit wird die Tabelle mittels mehrer FOR-Schleifen zusammengebaut.

Tabellen:
Bestellungen
Kontakte (beinhaltet Lieferant + Kunde)
Vertrag (beinhaltet die Bez zwischen Kunde und Lieferant)
Kundenartikel
Lieferantenartikel
Preise

Welche Info ist noch wichtig?

Mal so ein Beispiel, was ich bislang in abgespeckter SQL Variante benutzt habe:
01.
  
02.
select 
03.
Kontakte.kurz as Name, 
04.
round(sum(--preisberechnung--) as VPE 
05.
from Bestellungen 
06.
join Preis on Bestellungen.Preis_id = Preis.id 
07.
join Lieferantenartikel on Preis.Lieferantenartikel_id = Lieferantenartikel.id 
08.
join Kundenartikel on Kundenartikel.id = Preis.Kundenartikel_id 
09.
join Kontakte on Kontakte.id = Kundenartikel.gelistetdurch_id 
10.
where geliefert > '2010-01-01' 
11.
and geliefert < '2010-02-01' 
12.
group by Kontakte.kurz 
13.
order by Name asc
Sonst einfach melden ... Infos gibt es immer.


Grüße
fleißiges Bienchen
Midivirus

UPDATE^1:
Mein Gedanke war halt, dass ich für jeden Kunden, eine einzelne Abfrage erstelle ... aber ich kann nicht 70 Abfragen ausführen,
Jetzt mit 10 ist es ja schon viel ... 2 pro Kalendermonat

UPDATE^2:
Wo ich den Sourcecode von diversen CMS-Systemen gelesen habe, ist mir an vielen Stellen aufgefallen, dass dort 2 Arrays miteinander abgeglichen werden.
So könnte ich doch jetzt eine Abfrage gestalten, die alle Lieferanten in ein Array packt, anschließend die Umsätze pro Monat in ein Array, dass dann filtern, so dass im dritten dann die Ergebnisse stehen (incl. leere Felder).
und das Array mit den Umsätzen pro Monat wird geleert und mit dem nächsten Monat voll gemacht.

mögliche Idee?
Ähnliche Inhalte
Datenbanken
gelöst Hilfe bei SQL-Abfrage (5)

Frage von emeriks zum Thema Datenbanken ...

Datenbanken
gelöst SQL-Abfrage mit "kleiner gleich" funktioniert nicht (2)

Frage von derSESO zum Thema Datenbanken ...

Datenbanken
gelöst SQL Abfrage - Ausgabe von Person mit Privat- und Dienstadresse (3)

Frage von CBruns zum Thema Datenbanken ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (36)

Frage von Datsspeed zum Thema Exchange Server ...

Verschlüsselung & Zertifikate
Mit Veracrypt eine zweite interne (non-system) Festplatte verschlüsseln (10)

Frage von Bernulf zum Thema Verschlüsselung & Zertifikate ...

Internet Domänen
Nameserver ein Geist? (7)

Frage von zelamedia zum Thema Internet Domänen ...

Microsoft Office
Übertrag in eine andere Tabelle (6)

Frage von charmeur zum Thema Microsoft Office ...