学校のプロジェクトがあり、私は最後のステップに完全に突き当たりました。 私のコードがあります:結果はSoma.soma
はmin Consumidor.number
(-s)でなければなりません期待SQLはmax/minフィールドでフィールドを取得します
Consumidor.number Soma.soma
123 90
456 70
789 70
:
SELECT Consumidor.numero, Soma.soma
FROM Consumidor
JOIN
(SELECT compra.consumidor, SUM(Eco.eco*compra.quantidade) as soma
FROM compra
JOIN
(SELECT composto.produto, composto.prodMarca, Produto.nome,
sum(Elemento.pegadaEcologica * composto.percentagem/100) AS eco
FROM composto
JOIN Produto
ON composto.produto = Produto.codigo
AND composto.prodMarca = Produto.marca
JOIN Elemento
ON composto.elemento = Elemento.codigo
GROUP BY composto.produto, composto.prodMarca) Eco
ON compra.produto = Eco.produto AND compra.prodMarca = Eco.prodMarca
GROUP BY compra.consumidor) Soma
ON Consumidor.numero = Soma.Consumidor
は、だから今、私は次のようにテーブルを持っています。
I.e.この表の結果を次のようになります。
Consumidor (PK numero, email, sexo, nascimento)
Elemento (PK codigo, nome, pegadaEcologica, saude)
Produto (PK codigo, FK PK Marca.numero marca, nome, tipo, comercioJusto)
compra (FK PK Produto.codigo produto, FK PK Produto.marca prodMarca, Consumidor.numero, quantidade)
composto (FK PK Produto.codigo produto, FK PK Produto.marca prodMarca, FK PK Elemento.codigo elemento, percentagem)
更新:
Consumidor.number
456
789
このクエリで使用されるすべてのテーブルの元のスキーマがあります。 私は解決策で立ち往生didntの - 解決策がある:
SELECT Consumidor.numero, Soma.soma
FROM Consumidor
JOIN
(SELECT compra.consumidor, SUM(Eco.eco*compra.quantidade) as soma
FROM compra
JOIN
(SELECT composto.produto, composto.prodMarca, Produto.nome,
sum(Elemento.pegadaEcologica * composto.percentagem/100) AS eco
FROM composto
JOIN Produto
ON composto.produto = Produto.codigo
AND composto.prodMarca = Produto.marca
JOIN Elemento
ON composto.elemento = Elemento.codigo
GROUP BY composto.produto, composto.prodMarca) Eco
ON compra.produto = Eco.produto AND compra.prodMarca = Eco.prodMarca
GROUP BY compra.consumidor) Soma
ON Consumidor.numero = Soma.Consumidor
WHERE Soma.soma <= ALL
(SELECT SUM(Eco.eco*compra.quantidade) as soma
FROM compra
JOIN
(SELECT composto.produto, composto.prodMarca, Produto.nome,
sum(Elemento.pegadaEcologica * composto.percentagem/100) AS eco
FROM composto
JOIN Produto
ON composto.produto = Produto.codigo
AND composto.prodMarca = Produto.marca
JOIN Elemento
ON composto.elemento = Elemento.codigo
GROUP BY composto.produto, composto.prodMarca) Eco
ON compra.produto = Eco.produto AND compra.prodMarca = Eco.prodMarca
GROUP BY compra.consumidor)
は単にWHERE句に全体相馬クエリを置きます。このIMで期待されるリゾルトを得る。しかし、これはとても醜いと私はいくつかのよりエレガントな方法を探して見える。
P.S.トマトを投げないでください - プロジェクトの記述に従います私はFROM
節でサブクエリを使用することはできませんが、私のコード全体についていくつかの観察があれば感謝します。
あなたの現在の 'from'節には副選択が含まれていることに気づきました。 – Jacobm001
サンプルの入出力データをいくつか含めてください。 –
@ Jacobm001私は選択できないことを意味します(選択....)、今すぐすべての私のsubselectsは ジョイント句 –