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, 4466 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?
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Datenbanken
SUM oder AVG in SQL Abfrage dauert viel zu lange warum? (5)

Frage von samet22 zum Thema Datenbanken ...

Datenbanken
gelöst SQL-Abfrage mit MAX() (9)

Frage von FrAmEr zum Thema Datenbanken ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...

Exchange Server
DNS Einstellung - zwei feste IPs für Mailserver (15)

Frage von ivan0s zum Thema Exchange Server ...