WinFuture-Forum.de: Sql Abfragen Kombinieren - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Sql Abfragen Kombinieren


#1 Mitglied ist offline   MaliMaster 

  • Gruppe: aktive Mitglieder
  • Beiträge: 907
  • Beigetreten: 10. April 02
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Deutschland

geschrieben 12. Dezember 2007 - 10:42

Hallo Leute,

ich will eine Art Auswertungsseite programmieren. Dazu habe ich eine SQL Abfrage gebaut, die nach Firmennamen gruppiert und die Anzahl der Einträge zählt:

SELECT organisation_name, COUNT(query_id) AS anzahl FROM querys 
GROUP BY organisation_name;


Diese Daten werte ich dann in einer Schleife aus Frage pro durchlauf noch andere Daten ab, z.b. eine Abfrage wie diese hier:

SELECT query_kat, COUNT(query_id) AS anzahl FROM querys 
WHERE organisation_name ='".$array['organisation_name']."' 
AND query_kat = 'Fehler - Jira'
GROUP BY query_kat;


Ich brauche also noch mehr Daten zu den jeweilig gruppierten Daten. Das heißt pro Firmenname, werden noch einmal 5 Abfragen abgeschickt und das werden pro Auswertung 100 Querys. Gibt es eine Möglichkeit die Zweite Abfrage in die erste zu integrieren?

Ich arbeite mit MySQL.

Dieser Beitrag wurde von MaliMaster bearbeitet: 12. Dezember 2007 - 10:48

0

Anzeige



#2 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 12. Dezember 2007 - 15:09

Sorry, vielleicht liegt auch an mir, aber nach mehrmaligem Durchlesen weiß ich immer noch nicht konkret was du machen möchtest.

Ich versuche es aber trotzdem :blink:

Um mehrere Abfragen gleichzeitig auszuführen bzw. zu cachen fallen mir zwei Begriffe ein, die dir ggf. weiterhelfen könnten: Sub-Selects und/oder Prepared Statements.
0

#3 Mitglied ist offline   MaliMaster 

  • Gruppe: aktive Mitglieder
  • Beiträge: 907
  • Beigetreten: 10. April 02
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Deutschland

geschrieben 13. Dezember 2007 - 11:01

Ich hab mich auch wirr ausgedrückt =)

Ich schreib mal eine Abfrage die so nicht funktioniert, aber vielleicht demonstriert wie ich das meine:

SELECT organisation_name, COUNT(query_id) AS anzahl, (SELECT query_kat, COUNT(query_id) AS anzahl_kat FROM querys 
WHER Equery_kat = 'Fehler - Jira' 
GROUP BY query_kat;)  AS anzahl_kat FROM querys
GROUP BY organisation_name;


Ich könnte auch den ganzen Code hier reinstellen wie ich es mache, dann ist glaube ich klar, wie schwachsinnig ich das im Moment machen:

<?php
if($order_by == "query_timestamp DESC"){
	$order_by = "organisation_name ASC";
}
?>
<h3>Management-Information-System - Gesamtüberblick</h3>
<hr/>
<table cellspacing="2px" cellpadding="2px" width="100%">
	<tr>
	<th><a class="sort" href="index.php?section=mis&sort_by=org">Organisation-Name</a></th>
	<th><a class="sort" href="index.php?section=mis&sort_by=anz_all">Anfragen</a></th>
	<th><a class="sort" href="index.php?section=mis&sort_by=anz_all">Anteil</a></th>
	<th>F. - Jira</th><th>%</th><th>F. - FDL</th><th>%</th><th>Anforder.</th>
	<th>%</th><th>Bedienungsfr.</th><th>%</th><th>Sonst.</th><th>%</th><th>Tel.</th><th>%</th><th>E-Mail</th><th>%</th>
	</tr>
<?php
$overview_count = "SELECT query_id FROM querys LEFT JOIN
users ON querys.query_user_id=users.user_id LEFT JOIN
organisations_mm ON querys.query_organisation=organisations_mm.organis
ation_id;";
$overview_count_erg = mysql_query($overview_count, $con);
$anzahl = mysql_num_rows($overview_count_erg); 

$overview_query = "SELECT organisation_name, COUNT(query_id) AS anzahl FROM querys LEFT JOIN
users ON querys.query_user_id=users.user_id LEFT JOIN
organisations_mm ON querys.query_organisation=organisations_mm.organis
ation_id
GROUP BY organisation_name
ORDER BY $order_by;";

$overview = mysql_query($overview_query, $con);
while($array = mysql_fetch_array($overview))
{
	$anzahl_prozent = ($array['anzahl'] / $anzahl) * 100;
	echo "<tr "; if($tbcolor%2 == 0){echo "style='background-color: #DCDCDC'";}   echo ">\n";
	echo"<td>".$array['organisation_name']."</td>\n";
	echo"<td>";
	if($array['anzahl'] > 0){
		echo "<b>".$array['anzahl']."</b>";
	} else{
		echo $array['anzahl'];
	}
	echo"</td>\n";
	echo"<td>";
	if($anzahl_prozent > 0){
		echo "<b>".number_format($anzahl_prozent, 2)."%</b>";
	} else{
		echo number_format($anzahl_prozent, 2)."%";
	}
	echo"</td>\n";
	
	$overview_kat = "SELECT query_kat, COUNT(query_id) AS anzahl FROM querys LEFT JOIN
	users ON querys.query_user_id=users.user_id LEFT JOIN
	organisations_mm ON querys.query_organisation=organisations_mm.organis
ation_id
	WHERE organisation_name ='".$array['organisation_name']."' AND query_kat = 'Fehler - Jira'
	GROUP BY query_kat;";
	$overview_kat_erg = mysql_query($overview_kat, $con);
	$array_1 = mysql_fetch_array($overview_kat_erg);
	if($array_1['anzahl'] == ""){$array_1['anzahl'] = 0;}
	$anzahl_prozent_1 = ($array_1['anzahl'] / $array['anzahl']) * 100;
	echo"<td>";
	if($array_1['anzahl'] > 0){
		echo "<b>".$array_1['anzahl']."</b>";
	} else{
		echo $array_1['anzahl'];
	}
	echo"</td>\n";
	echo"<td>";
	if($anzahl_prozent_1 > 0){
		echo "<b>".number_format($anzahl_prozent_1, 2)."%</b>";
	} else{
		echo number_format($anzahl_prozent_1, 2)."%";
	}
	echo"</td>\n";

	$overview_kat = "SELECT query_kat, COUNT(query_id) AS anzahl FROM querys LEFT JOIN
	users ON querys.query_user_id=users.user_id LEFT JOIN
	organisations_mm ON querys.query_organisation=organisations_mm.organis
ation_id
	WHERE organisation_name ='".$array['organisation_name']."' AND query_kat = 'Fehler - FDL'
	GROUP BY query_kat;";
	$overview_kat_erg = mysql_query($overview_kat, $con);
	$array_1 = mysql_fetch_array($overview_kat_erg);
	if($array_1['anzahl'] == ""){$array_1['anzahl'] = 0;}
	$anzahl_prozent_1 = ($array_1['anzahl'] / $array['anzahl']) * 100;
	echo"<td>";
	if($array_1['anzahl'] > 0){
		echo "<b>".$array_1['anzahl']."</b>";
	} else{
		echo $array_1['anzahl'];
	}
	echo"</td>\n";
	echo"<td>";
	if($anzahl_prozent_1 > 0){
		echo "<b>".number_format($anzahl_prozent_1, 2)."%</b>";
	} else{
		echo number_format($anzahl_prozent_1, 2)."%";
	}
	echo"</td>\n";
	
	$overview_kat = "SELECT query_kat, COUNT(query_id) AS anzahl FROM querys LEFT JOIN
	users ON querys.query_user_id=users.user_id LEFT JOIN
	organisations_mm ON querys.query_organisation=organisations_mm.organis
ation_id
	WHERE organisation_name ='".$array['organisation_name']."' AND query_kat = 'Anforderungen'
	GROUP BY query_kat;";
	$overview_kat_erg = mysql_query($overview_kat, $con);
	$array_1 = mysql_fetch_array($overview_kat_erg);
	if($array_1['anzahl'] == ""){$array_1['anzahl'] = 0;}
	$anzahl_prozent_1 = ($array_1['anzahl'] / $array['anzahl']) * 100;
	echo"<td>";
	if($array_1['anzahl'] > 0){
		echo "<b>".$array_1['anzahl']."</b>";
	} else{
		echo $array_1['anzahl'];
	}
	echo"</td>";
	echo"<td>\n";
	if($anzahl_prozent_1 > 0){
		echo "<b>".number_format($anzahl_prozent_1, 2)."%</b>";
	} else{
		echo number_format($anzahl_prozent_1, 2)."%";
	}
	echo"</td>\n";

	$overview_kat = "SELECT query_kat, COUNT(query_id) AS anzahl FROM querys LEFT JOIN
	users ON querys.query_user_id=users.user_id LEFT JOIN
	organisations_mm ON querys.query_organisation=organisations_mm.organis
ation_id
	WHERE organisation_name ='".$array['organisation_name']."' AND query_kat = 'Bedienungsfragen'
	GROUP BY query_kat;";
	$overview_kat_erg = mysql_query($overview_kat, $con);
	$array_1 = mysql_fetch_array($overview_kat_erg);
	if($array_1['anzahl'] == ""){$array_1['anzahl'] = 0;}
	$anzahl_prozent_1 = ($array_1['anzahl'] / $array['anzahl']) * 100;
	echo"<td>";
	if($array_1['anzahl'] > 0){
		echo "<b>".$array_1['anzahl']."</b>";
	} else{
		echo $array_1['anzahl'];
	}
	echo"</td>\n";
	echo"<td>";
	if($anzahl_prozent_1 > 0){
		echo "<b>".number_format($anzahl_prozent_1, 2)."%</b>";
	} else{
		echo number_format($anzahl_prozent_1, 2)."%";
	}
	echo"</td>\n";

	$overview_kat = "SELECT query_kat, COUNT(query_id) AS anzahl FROM querys LEFT JOIN
	users ON querys.query_user_id=users.user_id LEFT JOIN
	organisations_mm ON querys.query_organisation=organisations_mm.organis
ation_id
	WHERE organisation_name ='".$array['organisation_name']."' AND query_kat = 'Sonstiges'
	GROUP BY query_kat;";
	$overview_kat_erg = mysql_query($overview_kat, $con);
	$array_1 = mysql_fetch_array($overview_kat_erg);
	if($array_1['anzahl'] == ""){$array_1['anzahl'] = 0;}
	$anzahl_prozent_1 = ($array_1['anzahl'] / $array['anzahl']) * 100;
	echo"<td>";
	if($array_1['anzahl'] > 0){
		echo "<b>".$array_1['anzahl']."</b>";
	} else{
		echo $array_1['anzahl'];
	}
	echo"</td>\n";
	echo"<td>";
	if($anzahl_prozent_1 > 0){
		echo "<b>".number_format($anzahl_prozent_1, 2)."%</b>";
	} else{
		echo number_format($anzahl_prozent_1, 2)."%";
	}
	echo"</td>\n";
	
	$overview_kat = "SELECT query_kat, COUNT(query_id) AS anzahl FROM querys LEFT JOIN
	users ON querys.query_user_id=users.user_id LEFT JOIN
	organisations_mm ON querys.query_organisation=organisations_mm.organis
ation_id
	WHERE organisation_name ='".$array['organisation_name']."' AND query_kanal = 'Telefon'
	GROUP BY query_kanal;";
	$overview_kat_erg = mysql_query($overview_kat, $con);
	$array_1 = mysql_fetch_array($overview_kat_erg);
	if($array_1['anzahl'] == ""){$array_1['anzahl'] = 0;}
	$anzahl_prozent_1 = ($array_1['anzahl'] / $array['anzahl']) * 100;
	echo"<td>";
	if($array_1['anzahl'] > 0){
		echo "<b>".$array_1['anzahl']."</b>";
	} else{
		echo $array_1['anzahl'];
	}
	echo"</td>\n";
	echo"<td>";
	if($anzahl_prozent_1 > 0){
		echo "<b>".number_format($anzahl_prozent_1, 2)."%</b>";
	} else{
		echo number_format($anzahl_prozent_1, 2)."%";
	}
	echo"</td>\n";
	
	$overview_kat = "SELECT query_kat, COUNT(query_id) AS anzahl FROM querys LEFT JOIN
	users ON querys.query_user_id=users.user_id LEFT JOIN
	organisations_mm ON querys.query_organisation=organisations_mm.organis
ation_id
	WHERE organisation_name ='".$array['organisation_name']."' AND query_kanal = 'E-Mail'
	GROUP BY query_kanal;";
	$overview_kat_erg = mysql_query($overview_kat, $con);
	$array_1 = mysql_fetch_array($overview_kat_erg);
	if($array_1['anzahl'] == ""){$array_1['anzahl'] = 0;}
	$anzahl_prozent_1 = ($array_1['anzahl'] / $array['anzahl']) * 100;
	echo"<td>";
	if($array_1['anzahl'] > 0){
		echo "<b>".$array_1['anzahl']."</b>";
	} else{
		echo $array_1['anzahl'];
	}
	echo"</td>\n";
	echo"<td>";
	if($anzahl_prozent_1 > 0){
		echo "<b>".number_format($anzahl_prozent_1, 2)."%</b>";
	} else{
		echo number_format($anzahl_prozent_1, 2)."%";
	}
	echo"</td>\n";
	
	echo"</tr>\n";
	$tbcolor++;
}
?>
<?php include "mis_2.php"; ?>
</table><br/>

Dieser Beitrag wurde von MaliMaster bearbeitet: 13. Dezember 2007 - 11:11

0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0