Ich habe Hausaufgaben und bin an einem Punkt festgefahren. Ich habe 7 Tabelle für meine Datenbank.Diese sind products-books-movies-musics-transactions-users
und für viele zu viele Beziehung gibt es Tabelle transproduct
. Also möchte ich den meistverkauften Artikel in der Datenbank mit Produktnamen und Typ und Anzahl der Verkäufe dieses Produkts finden. Kurzum transproduct die TransactionID, productid und Menge hält, hält Produkt den Namen, den Typ und usw. ich eine Abfrage wie folgt geschrieben:Den Namen eines meistverkauften Artikels in meiner Bibliothek finden (mysql)
select Barcode,sum(quantity)
from transproduct
group by Barcode;
und es gibt mir den Barcode eines Produktes und die Anzahl der Verkäufe von dieser Gegenstand; beispielsweise;
12345 15
13452 2
etc...
so habe ich versucht, beide Tabellen zu verwenden und schrieb someting wie die
select Barcode,max(summ) from(
select Barcode,sum(quantity) as summ
from transproduct
group by Barcode) as t1;
aber es gibt mir nicht das Produkt-ID der meisten verkauften Artikel gibt es die Mindest Produkt-ID und Nummer von Verkäufen von maximal verkauftem Produkt. Ich möchte ähnliche ich
productName|productType|Quantity
Back To Black|Music|53
einen Tisch bekommen bin so verwirrt, so dass ich weiß, dass ich mich nicht klar erklären konnte aber dank wenn u helfen kann ...
Die Tabellen Ich verwende:
create table transproduct(
transactionID char(9),
Barcode char(5),
quantity integer(5),
constraint pktransproduct primary key (transactionID, Barcode));
alter table transproduct add constraint fktransproducttransaction
foreign key (transactionID) references transactions(transactionID);
alter table transproduct add constraint fktransproductproduct
foreign key (Barcode) references product(Barcode);
und
create table product(
Barcode char(5),
productName nvarchar(50),
quantity integer(6),
price double,
ProductType varchar(11),
constraint pkproduct primary key (Barcode));
dies sind einige Beispieldaten aus Produkt
'12345', 'A Head Full Of Dreams', '2', '7.5', 'Music'
'46089', 'Ride The Lightning ', '31', '19.99', 'Music'
'46792', 'Back to Black', '21', '13.5', 'Music'
dies sind einige Beispieldaten aus transproduct
'164571349', '13762', '3'
'496272753', '14532', '13'
'365725914', '14532', '2'
klar zu sein, wie Sie das Produkt sehen ‚14532‘ verkauft 15-mal und die am meisten verkauften Artikel so erhalte ich möchte Tisch wie
'Of Mice And Men','Book','15'
jetzt im diese Abfrage verwenden und es funktioniert, aber ich glaube nicht, seine effiziente
select productName,ProductType,r from(
select Barcode as b ,max(summ) as r from(
select Barcode,sum(quantity) as summ
from transproduct
group by Barcode order by sum(quantity) desc)as t1)as t2,product where b=product.Barcode;
Schauen Sie sich an, was die ORDER BY (und LIMIT) Klauseln für Sie tun können. – Strawberry
Zeigen Sie einige Beispieldaten mit Ihrem Ergebnis und dem erwarteten Ergebnis – Jens
Ich habe einige Reihenfolge verwendet und viele verschachtelte Auswahl Ich weiß, meine Abfrage ist überhaupt nicht effizient, aber es wird für jetzt tun, denke ich. Sorry für die Störung und danke für die Bestellung durch Beratung ^^ Wenn ich alle anderen Aufgaben beenden kann, werde ich zurückkommen und diese Frage mit spezifischeren Daten stellen ^^ –