2016-05-09 9 views
0

Ich brauche Hilfe mit der folgenden Abfrage. Eine Tabelle mit Preis < = Durchschnittspreis in der gleichen Tabelle nach Produkttyp definiert durch "Typ" Ergebnisse in Tabelle3Abfrage Zeilen in verschiedenen Tabellen

Ich muss die Ergebnisse eines Vergleichs zwischen dem Wert eines Budgetbetrags und dem Durchschnittswert der Preise im ausgeben Produkttabelle eines bestimmten Typs. Die ausgewählten Produkte sind niedriger oder gleich im Preis der durchschnittlichen Menge. Die Produkte in der Tabelle haben eine Spalte, die sie nach Typ sortiert. Der Vergleich schließt nur Produkte dieses Typs ein. Bisher habe ich dies:

<?php 
$presupuesto = 250; 
$catprom = 0; 

function mostrarDatos ($resultado) { 
if ($resultado !=NULL) { 
echo "- Promedio de Categoria ".'Type'." es:".$resultado['total_average']."<br/>";} 
else {echo "<br/>No hay más datos!!! <br/>";} 
} 
$link = mysqli_connect("db", "user", "pass"); 
mysqli_select_db($link, "db"); 
$result1 = mysqli_query($link, "SELECT AVG(Price) as total_average FROM`Table2` GROUP BY Type"); 

$result2 = mysqli_query($link, "INSERT INTO Table3 (Producto_ID, Name, Description, Price) SELECT Type FROM Table2 WHERE Price <= total_average;"); 
while ($fila = mysqli_fetch_array($result1)){ 
mostrarDatos($fila); 
} 
//while ($fila = mysqli_fetch_array($result2)){ 
// mostrarDatos3($fila); 
//} 
mysqli_free_result($result1); 
//mysqli_free_result($result2); 
mysqli_close($link); 
?> 

Ich weiß, dass ich alt php verwende, aber auch hier havent gefunden Ressourcen, die diese in PDO präsentieren

Sample table1: 
Budget_ID|Budget 
---------|------ 
01  |300 

Tabelle 2:

Product_ID|Name |Description  |Price|Type 
----------|-----|----------------|-----|---- 
01  |Milk |1 Ltr of Milk |200 |Drink 
02  |Sugar|1 Pound of Sugar|600 |Sweetener 
03  |Tea |1 Ltr of Tea |250 |Drink 

Tabelle 3:

Product_ID|Name |Description  |Price|Type 
    ----------|-----|----------------|-----|---- 
    01  |Milk |1 Ltr of Milk |200 |Drink 

Antwort

0

Sie können Durchschnitt berechnen zuerst, und wählen Sie alles unter diesem Wert.

sql fiddle

select p.* from products p 
where p.price < (select sum(e.price)/count(e.id) from products e)  
+0

ich in SELECT AVG tat ... –

+0

könnten Sie ein wenig mehr auf das, was p erarbeiten. * Tut und T.PREIS oder e.price oder e gefallen beziehen. Ich habe sie nie so gekürzt gesehen. –

+0

Ihre Antwort lieferte die ursprünglich von mir erfragten Ergebnisse. Vielen Dank. –

Verwandte Themen