ich bin mir nicht sicher ob mein ER-Modell stimmt, daher bitte ich um Feedback
Druckbare Version
ich bin mir nicht sicher ob mein ER-Modell stimmt, daher bitte ich um Feedback
HY!
Ich bin mir nicht sicher aber ich hab das UNternehmen noch als Entität!
Dann sind die Kundenberater Mitarbeiter. Auserdem werden Rechnungen ausgestellt an das Unternehmen und an den Kunden!
Wär aber toll, wenn noch mehrere ein Feedback abgeben könnten!
Lg
wie würdest du es zeichnen:?:Zitat:
Zitat von csag3123
hinzu kommt noch dass ja auch ein pc system das aus mehreren artikeln besteht bestellt werden kann
hier mal mein versuch! Es fehlen aber noch die Nummern an den Entitätstypen!
Für ein Feedback wär ich mal wieder dankbar!
Weiß jemand wo das in Aufgabe 1 genannte ER Modell Konstrkut der Stücklistenabbildung zu finden ist?
das würd ich auch gern wissen, hab scho kA wo überall nachgeschaut...Zitat:
Zitat von st@ni
Wollt mal fragen, wie´s bei euch mit der gruppenarbeit ausschaut!? seit ihr schon weit? ich find di ganze sache ziemlich!! schwer muss ich sagen! empfindet ihr das auch so?
lg
Kann mir jemand helfen?
Bei Aufgabe 2.1. müsste meiner meinung nach diese abfrage richtig sein:
SELECT FirstName, LastName
FROM Employees
WHERE Hiredate < #01/01/1994#
AND Birthdate < #01/01/1950#
allerdings sagt mir der sql-trainer:
"Zeile 3: Falsche Syntax in der Nähe von '#'."
wenn ich die # weglasse, werden mir alle entitäten angezeigt.
was mach ich falsch?
tja also ich bin mir zwar nicht zu 100% sicher aber ich habs mal so gemacht und hab auch was raus bekommen:
SELECT BirthDate, HireDate, LastName
FROM Employees
WHERE BirthDate < '01/01/1950'
AND HireDate < '01/01/1994'
hoffe das hilft
mfg roland
Nein *g*Zitat:
Zitat von Tiny88
Achja, das "ER Modell Konstrukt der Stücklistenabbildung" findet man übrigens auf der Seite 47. Aber erwartet euch nicht zu viel - ist recht billig und nichts besonderes.
oder einfach
Die Funktion Year() "holt" einfach das Jahr aus dem Datum raus.Code:SELECT *
FROM Employees
WHERE Year(BirthDate) < 1950
AND Year(HireDate) < 1994;
Das ist ganz nützlich, wenn man nur nach einem bestimmten Jahr einschränken muss. Somit kann man einfach
WHERE Year(feldname) = 2009
und muss nicht mit größer UND kleiner arbeiten.
ja cool danke.
warum steht dann in den proseminarfolien drin, dass datumseingaben immer mit # gemacht werden sollen??? son scheiss....:x
Hab noch eine Frage. und zwar bei 2.3. ist nach DEM Lieferanten mit dem teuersten Produkt im Sortiment gefragt. Meiner Meinung nach müsste das hier stimmen:
SELECT S.CompanyName, P.ProductName
FROM Products AS P, Suppliers AS S
WHERE UnitPrice = (SELECT Max(UnitPrice) FROM Products);
Allerdings kommen da viele Lieferanten raus, die alle das teuerste Produkt liefern. stimmt das so, oder wo liegt mein denkfehler?
Ich will hier keine fertigen Lösungen posten. Da soll jeder selbst drauf kommen.
Aber ich kann dir ja einen Tipp geben. Also deine Lösung ist so nicht ganz richtig. Es gibt nur 1 teuerstes Produkt.
Wenn man Abfragen über mehrere Tabellen macht MUSS MAN IMMER auch die Beziehung der Tabellen untereinander angeben. In diesem Fall also die Beziehung zwischen den Tabellen Products und Suppliers. ;-)
Eine Frage von einem Außenstehenden: ist die Gruppenarbeit und die Projektarbeit das gleiche?
Weil dann füge ich alles in einem Thread zusammen.
Danke!
Ja
Könnte eventuell jemand, der sich mit der Materie auskennt eventuell die Lösungen (muss nicht der Sql Quelltext sein, sondern nur das was nach der Abfrage rauskommt) posten, damit man ein wenig vergleichen könnte ob man richtig liegt oder nicht.
Kann es sein, dass auch der ASC begriff hier anders ist?
Bei Aufgabe 6 kommt am ende:
GROUP BY S.ShipperID ASC;
und ich bekomm als fehlermeldung:
Falsche Syntax in der Nähe des ASC-Schlüsselwortes.
???
Hi,
ASC ist an dieser Stelle falsch.
GROUP BY gruppiert nach einem Element
ORDER BY sortiert (auf- oder absteigend) nach einem Element.
Die richtige Syntax zum "Sortieren" der Ausgabe lautet daher:
ORDER BY tabelle.feldname ASC
bzw.
ORDER BY tabelle.feldname DESC
Bin mir bei der 1.a. nicht sicher, da ich meistens n:m Beziehungen habe!
Wie habt ihr das gelöst...ist ja mega kompliziert wenn man die alle auflösen muss????????
Bitte um Hilfe!!!
DDAANNNKKKEEE:D
An M:N-Beziehungen gibt es ja prinzipiell nichts auszusetzen.
Man muss nur folgende 2 Regeln beachten - wenn man dann die CREATE TABLE Statements schreibt und die Datenbank anlegt (wie es dann in Aufgabe 1 b gewünscht ist):
Regel 1
Eine M:N Beziehung muss immer in zwei 1:N Beziehungen aufgelöst werden (da entsteht also eine neue Tabelle). Dies wird im Dokument 08-EinfAccess_2Entitaetstypen_M_zu_N.pdf ausführlich erklärt. (Im Prinzip kommt einfach eine zusätzliche ("Zwischen-")Tabelle die die Primärschlüssel von der "N"-Seite und auch die Primärschlüssel von der "M"-Seite [und eventuell auch noch zusätzliche Attribute] enthällt. Als Primärschlüssel für diese ("Zwischen-")Tabelle kann entweder eine eigene (fortlaufende) ID verwendet werden oder ein kombinierter Primärschlüssel aus den "Primärschlüssel-feldern" der "M-" und "N-"Seite.
Regel 2
Wenn du das CREATE TABLE für eine 1:N Beziehung erstellst, dann erhällt die Tabelle die auf der "N"-Seite ist (siehe ER-Modell Aufgabe 1a) immer auch ein Feld (= Attribut) mit dem Primärschlüssel von der Tabelle aus der "1"-Seite. Auch wenn man dieses Feld im ER-Modell nicht einzeichnet - und genau dieses Feld ist dann der Fremdschlüssel (abkürzung: FS). Dieses Feld kann man dann zum Beispiel FSKundenID nennen.
Am Besten man schaut sich da ein konkretes Beispiel an - dann versteht man besser was ich damit meine.
Ich verstehe Aufgabe 2.7. nicht wirklich. Wer sind denn die untergeordneten Mitarbeiter? Es gibt Sales Representitives, 'Vice President, Sales', Sales Manager, Inside Sales Coordinator.
Wer ist da wem über- bzw. untergeordnet?
Die Mitarbeiterhierarchie (Vorgesetzte) wird afaik über das Feld "ReportsTo" geregelt.
So sind die Mitarbeiter 6, 7 und 9 dem Mitarbeiter 5 untergeordnet.
Und die Mitarbeiter 1, 3, 4, 5(!) und 8 dem Mitarbeiter 2 untergeordnet.
Gefragt sind ja nur die direkt untergeordneten Mitarbeiter.
aaaah, das feld hab ich gar nich beachtet! danke!!
Wie ist bei euch der teuerste Preis : 1263,5000? Weil diesen Preis haben ja mehrere Lieferanten? Wie viele Kategorien habt ihr bei der Aufgabe 2.4? Ich habe 8 Kategorien, die jeweils einen Umsatz von 205877705,6800 haben....habt ihr dasselbe?
Könnt ihr mir vl einen Tipp für 5 und 6 geben? Welche Befehle habt ihr da genommen?
Aufgabe 2 - 3)
Es gibt (in unserem Beispiel) nur 1 Produkt mit 1 Lieferanten der das teuerste Produkt in Höhe von € 1263,5 verkauft.Code:CompanyName ProductName UnitPrice
Aux joyeux ecclésiastiques Côte de Blaye 1263,5
Aufgabe 2-4
Es gibt folgende 8 Kategorien
und jede Kategorie hat einen anderen Umsatz, da hast wohl noch einen Fehler drin ;-)Code:1 Beverages
2 Condiments
3 Confections
4 Dairy Products
5 Grains/Cereals
6 Meat/Poultry
7 Produce
8 Seafood
Die Kategorien hab ich auch :)....aber leider überall den gleichen Umsatz...*g*Zitat:
Zitat von st@ni
Zitat:
Zitat von claudi217
;-)
z.B.: Im Beispiel mit dem teuersten Produkt also die Beziehung zwischen den Tabellen Products und Suppliers. ;-)Zitat:
Zitat von st@ni
Hallo zusammen!
Wie kann ich mit Hilfe der Formulare im Access einen neuen Kunden erfassen??
Kombinationsfeld ist es glaube ich nicht - da kann ich ein drop-down menü erstellen und die vorhandenen kunden auswählen. welche befehle helfen mir einen neuen kunden hinzuzufügen?
vielen dank für euere Hilfe!
Hi,
Schau dir (im e-campus) die Datei 09-Access_Formulare.pdf an, da wird dies afaik Schritt für Schirtt erklärt.
Wie habt ihr das mit dem Alter gemacht, da ja ein "date-time" bei dem Befehl nicht zulässig ist und welchen Spaltennamen habt ihr als Vorgesetzten genommen?
hallo leute!
habe eine frage zu 1.b.! welche infos nehmt ihr her, um die tabellen zu erstellen? kenn mich gar nicht aus!!!!
mfg
Du musst die Tabellen anhand von deinem ER Modell ableiten...je nachdem was für entitäten und beziehungen du gemacht hast musst du andere Tabellen machen, sprich andere Foreign, Primary Key etc.Zitat:
Zitat von Heidi
Funktioniert im Prinzip gleich wie beim Ü6:D
In dem Skript auf Seite 45 und 46 steht wie die Tabellen bei 1:N und N:M umgesetzt werden müssen....
DIe Umsetzung in SQL würde dann z.B. so aussehen
CREATE TABLE Mitarbeiter (
MNr INT NOT NULL AUTO_INCREMENT,
VNr INT,
AbtNr INT NOT NULL,
Name VARCHAR(30) NOT NULL,
GebDat DATE,
Telefon VARCHAR(30),
PRIMARY KEY(MNr),
FOREIGN KEY(VNr) REFERENCES Mitarbeiter(MNr),
FOREIGN KEY(AbtNr) REFERENCES Abteilung(AbtNr)
);
WICHTIG ist einfach dass du die richtigen Primary Key und die dazugehörenden Foreign Key benennst :)
danke!!!! :D
was ist denn hier der Primärschlüssel? Versandhaus?
mfg
Mit dem Befehl GETDATE() bekommst du das aktuelle Datum und damit kannst du dann das Alter berechnen ;-)Zitat:
Zitat von claudi217
Die Vorgesetzten werden über ReportsTo geregelt.
hallo!
hab eine frage zu den schlüsseln! ich hab den primärenschlüssel bei Steuernummer (versandhaus) eingesetzt!
wie kann ich die anderen schlüssel im access bestimmen?!
bzw. welche wege muss ich gehn?
mfg
Ich verstehe leider deine Frage nicht ganz.
Primärschlüssel kannst du so festlegen:
und "Fremdschlüssel" zum Beispiel so:Code:PRIMARY KEY(FeldName1, FeldName2, FeldName3)
Nähere Infos dazu findest du im Script ab Seite 73Code:FeldName LONG CONSTRAINT NameBeziehung REFERENCES Tabelle (FeldName)
Wenn du Beziehungen machst und mehrere Entitäten dann kannst du auch mehrere Primärschlüssel haben...schau dir einfach die Seiten 45/46 an, dort wird es gezeigt und erklärt...Zitat:
Zitat von Heidi
Fremdschlüssel könnte man auch so machen:Zitat:
Zitat von st@ni
FOREIGN KEY(Feldname) REFERENCES Tabellennamen(Feldname) anstatt dem LONG CONSTRAINT Befehl...
Danke!!Zitat:
Zitat von st@ni
Wie setzt du das ReportsTo ein --> einfach
Select Employees.ReportsTo ??
Hi,
Also es gibt insgesamt 2 Vorgesetzte:
Mitarbeiter 2 und 5.
Die Mitarbeiter 6, 7 und 9 sind dem Mitarbeiter 5 untergeordnet.
Die Mitarbeiter 1, 3, 4, 5(!) und 8 sind dem Mitarbeiter 2 untergeordnet.
Das heißt für diese 2 Mitarbeiter müsstest du das Durchschnittsalter der direkt untergeordneten Mitarbeiter (siehe oben) berechnen.
Ich habe das Alter wie folgt berechnet:
So bekommst du alle untergeordneten Mitarbeiter (das ist aber auch der Mitarbeiter 5):Code:AVG(DATEDIFF(day,u.birthdate,GETDATE())/365) AS DurchsAlterUntergMA
Code:SELECT EmployeeID, LastName, FirstName, ReportsTo
FROM Employees
GROUP BY EmployeeID, LastName, FirstName, ReportsTo
HAVING ReportsTo Is Not Null;
Wo habt ihr die Daten zu Mitarbeitern usw her?? Gibt es dazu eine Datenbank?
Die Vorgesetzen 2 und 5 zeigt es mir auch an....bekommst du das gleiche ergebnis mit deiner Abfrage wie mit meinerZitat:
Zitat von st@ni
SELECT Avg(DATEDIFF(year, BirthDate, GETDATE()) - (CASE WHEN DATEADD(year, DATEDIFF(year, BirthDate, GETDATE()), BirthDate) > GETDATE() THEN 1 ELSE 0 END)) As [Alter], EmployeeID, LastName, FirstName, ReportsTo
FROM Employees
GROUP BY Employees.EmployeeID, Employees.LastName, Employees.FirstName, Employees.ReportsTo
HAVING ReportsTo Is Not Null
Weil wenn ich den Code, den du für das Alter angegeben hast, einbaue bekomme ich einen synthaxfehler nähe des Datediff ?!?!
Die Online-Datenbank ist über folgende URL erreichbar:Zitat:
Zitat von Laura95
http://iwit1.uibk.ac.at/sql
Die entsprechenden Zugangsdaten solltest du von deinem Vortragenden erhalten haben.
mit dem Befehl
SELECT *
FROM Employees;
siehst du alle Daten der Employees. Auf diese Weise kannst du dir von allen Tabellen die gesamten Datensätze anzeigen lassen.
Seltsam, bei mir funktioniert die Abfrage mitZitat:
Zitat von claudi217
ausgezeichnet.Code:AVG(DATEDIFF(day,BirthDate,GETDATE())/365) AS DurchsAlterUntergMA
Mein Ergebnis für diese Aufgabe is übrigens:
Code:EmployeeID LastName FirstName DurchsAlterUntergMA
2 Fuller Andrew 56
5 Buchanan Steven 45
Wenn ich deine Abfrage wie oben durchführe erhalte ich folgendes:
Code:Alter EmployeeID LastName FirstName ReportsTo
60 1 Davolio Nancy 2
45 3 Leverling Janet 2
71 4 Peacock Margaret 2
53 5 Buchanan Steven 2
45 6 Suyama Michael 5
48 7 King Robert 5
50 8 Callahan Laura 2
42 9 Dodsworth Anne 5
hmm...dann muss ich mal schauen, wie ich es noch mache, dass es mir die daten zusammenfügt,nicht einzeln darlegt ;)Zitat:
Zitat von st@ni
Hast du bei deiner Abfrage, dass day und BirthDate bestimmt?! oder hast du es so übernommen...bekomm den synthaxfehler nämlich nicht raus...komisch
AVG(DATEDIFF(day,BirthDate,GETDATE())/365) AS DurchsAlterUntergMA
eben, es geht ja im Grunde darum, für die (beiden) Vorgesetzten jeweils das Durchschnittsalter ihrer direkt untergeordneten Mitarbeiter auszugeben.
Aber du scheinst das Alter der Mitarbeiter schonmal richtig berechnet zu haben. Wenn ich bei deinem obigen Ergebnis für jeden Vorgesetzten das Alter der untergeordneten Mitarbeiter zusammenzähle und den durchschnitt bilde erhalte ich für den Vorgesetzten 2 einen Wert von 55,8 und für den Vorgesetzten 5 einen Wert von 45 :-)
komisch, dass es mir den Durchschnitt nicht ausrechnet, weil hab ja AVG geschrieben...Zitat:
Zitat von st@ni
@ALL
ein kleiner Hinweis von meiner Seite, da ich an einigen Stellen und auch per PM oft falsche Berechnungen des Umsatzes sehe...
Also ... der Umsatz berechnet sich nicht (nur) aus
Menge * Preis
Es gibt hier noch einen anderen Wert zu berücksichtigen. Welchen, seht ihr mit einem Blick auf die Tabelle OrderDetails ;-)
Hallo :)
wir sind uns nicht ganz sicher ob folgende Ergebnisse bei Aufgabe 6 richtig sind. Könnte Sie bitte jemand, der sich sicher ist bestätigen oder ablehnen?
Zur Erinnerung die Frage:
Geben Sie für alle Transportunternehmen (Shippers) den durchschnittlichen Warenwert pro transportierter Lieferung aus und sortieren Sie die Liste aufsteigend nach dem durchschnittlichen Warenwert. (1)