php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 21-02-2010, 16:41
Pebbles123
 Registrierter Benutzer
Links : Onlinestatus : Pebbles123 ist offline
Registriert seit: Nov 2009
Beiträge: 13
Pebbles123 befindet sich auf einem aufstrebenden Ast
Standard Problem mit Abfrage erstellung

Hi

ich suche gerade einen Weg wie ich eine Berechnung am schnellsten mit einer SQL Abfrage lösen kann statt einer langsamen Berechnung...

Ich habe 3 Tabellen:
1. Tabelle beinhaltet die Tiere mit Tierart und BesitzerIndex
2. Tabelle behinhaltet die Tierarten und was diese pro Tag fressen (in kg)
3. Tabelle behinaltet die verschiedenen Futtersorten je Tierart mit unterschiedlichen Futtermengen und deren Preis.

bsp:
Tabelle 1:
User=1, Tierart 1
User=1, Tierart 1
User=1, Tierart 2
User=1, Tierart 3
User=1, Tierart 3

Tabelle 2:
Tierart1, 5kg
Tierart2, 2kg
Tierart3, 10kg

Tabelle 1
Futter1, Tierart1, 5kg, 4EUR
Futter2, Tierart1, 10kg, 9EUR
Futter3, Tierart2, 2kg, 2EUR
Futter4, Tierart2, 4kg, 5EUR
Futter5, Tierart3, 10kg, 9EUR

Jetzt möchte ich ausrechnen was User1 pro Tag an Futterkosten hat. Spontan würde ich jetzt eine Schleife mache über alle Tiere des Users 1, pro Tier mir raussuchen was es an Futter pro Tag braucht, dann was das jeweilige Futter kostet und das dann zusammenaddieren. Aber gibts hierfür nicht eine SQL Abfrage die das schon vielleicht für mich tut oder eventuell mit einige Schritte zusammenfassen kann? Bisher hab ich nur mit Abfragen auf eine Tabelle gearbeitet und keine Erfahrung mit übergreifenden Abfragen...
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #2 (permalink)  
Alt 21-02-2010, 16:54
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo,

schau dir mal im MySQL-Handbuch die JOIN Syntax an und die Beispiele dazu. Dann bekommst du sicher eine Idee, wie du das für deine Tabellen anwenden kannst.

Gruß,

Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #3 (permalink)  
Alt 21-02-2010, 16:57
Pebbles123
 Registrierter Benutzer
Links : Onlinestatus : Pebbles123 ist offline
Registriert seit: Nov 2009
Beiträge: 13
Pebbles123 befindet sich auf einem aufstrebenden Ast
Standard

Danke für den Tip, gibts auch was das er automatisch sachen zusammenzählt und addiert? zb User hat 3 Katzen und dauers ergibt sich 3x3EUR kosten?
Mit Zitat antworten
  #4 (permalink)  
Alt 21-02-2010, 17:00
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Ja, man kann mit der SQL auch rechnen.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #5 (permalink)  
Alt 21-02-2010, 18:41
Pebbles123
 Registrierter Benutzer
Links : Onlinestatus : Pebbles123 ist offline
Registriert seit: Nov 2009
Beiträge: 13
Pebbles123 befindet sich auf einem aufstrebenden Ast
Standard

kann mir einer einen kurzen Tip geben wie ich die Abfrage aufbauen muss, ich hab jetzt einige Varianten durch, aber ich schaff irgendwie immer nur 2 Tabellen miteinander zu verknüpfen und wenn ich versuch die 3. mit reinzubringen krieg ich nen Knoten im Gehirn. Ich bin schonmal soweit, daß er mir die Tieranzahl für einen User je Tierart berechnet:

SELECT UserIndex, AnimalTyp, COUNT(AnimalTyp) anzahl FROM useranimals WHERE UserIndex=1 GROUP BY AnimalTyp

Wie bekomme ich jetzt da die dazugehörige Futtersorte und dessn preis mit rein? Oder geht das nicht? Es muss ja jetzt in der einen Tabelle geschaut werden wieviel kg das Tier benötigt und dann in der 3. Tabelle die dazugehörige Futterart mit Preis ausgewählt werden... mir würde es auch reichen wenn erstmal nur das in der Tabelle rauskäme, die letztliche Berechnung Anzahl*Preis kann ich dann ja auch in einer Schleife machen...

Geändert von Pebbles123 (21-02-2010 um 18:45 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 21-02-2010, 20:14
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Was ich nicht verstehe: Warum steht die Menge in Tabelle 2 und Tabelle 3? Ich würde es ja so machen:

Tabelle Tierart: ID, Name, Futtereinheiten (pro Tag)
Tabelle Halter: ID, Name
Tabelle Futter: ID, Name, Tierart-ID, Preis (pro Futtereinheit in Euro)
Tabelle Haltung: ID, Halter-ID, Tierart-ID, Anzahl (Tiere)

Wenn ich jetzt wissen will, wieviel ein Halter pro Tag an Futterkosten ausgeben muss, könnte ich es so schreiben:

Code:
select
	`Halter`.`Name`,
	`Tierart`.`Name`,
	`Futter`.`Name`,
	`Futter`.`Preis` * `Tierart`.`Futtereinheiten` * `Haltung`.`Anzahl` as `PreisProTag`
from `Haltung`
join `Halter` on `Halter`.`ID` = `Haltung`.`HalterID`
join `Tierart` on `Tierart`.`ID` = `Haltung`.`TierartID`
join `Futter` on `Futter`.`TierartID` = `Tierart`.`ID`
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit Erstellung des Gästebuchs (Anfänger) fre4k PHP Developer Forum 13 07-08-2005 22:02
Problem bei der Erstellung einer Tabelle pascaluhlmann SQL / Datenbanken 11 18-05-2005 22:34
Erstellung einer Tabelle mit Abfrage seppwert Projekthilfe 17 14-01-2005 15:28
Problem mit Funktion zur Erstellung einer select-Liste daFish PHP Developer Forum 7 09-03-2004 20:07
Problem mit Menue-Erstellung aus DB Phil98 SQL / Datenbanken 4 12-10-2003 12:46

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

Microweber CMS

Open source, drag and drop website builder

13.01.2020 Berni | Kategorie: HTML5/ EDITOR
PhoneGap Apps mit JS, CSS3 und HTML5 erstellen ansehen PhoneGap Apps mit JS, CSS3 und HTML5 erstellen

PhoneGap, Framework zur Erstellung hybrider Applikationen für mobile Endgeräte.

13.01.2020 Berni | Kategorie: App-Entwicklung
Bo)Tickets

Bo)Tickets bietet Ihnen eine Schnittstelle für Kundenanfragen an. In dem Script definieren Sie Supportbereiche, also zum Beispiel „Technik, Buchhaltung, Support“. Ihre Kunden können dann über ein Formular eine Anfrage abschicken.

31.12.2019 bocombo | Kategorie: PHP/ Ticketsystem
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:32 Uhr.