2016-06-20 9 views
0

Ich versuche, einen webbasierten Bericht zu erstellen, um die Antwort bestimmter Ankündigungen anzuzeigen.SQL in Tabelle Mehrere Abfragen dieselbe Spalte

Dies funktioniert gut für meine Tabelle, um Gesamtwerte anzuzeigen, aber ich möchte es weiter abbauen. Ich habe zur Zeit SOURCE {source}, DESCRIPTION {source_desc}, TOTAL ORDERS {count}, TOTAL ORDER VALUE {value}, als meine Header, die von den obigen Feldern ausgefüllt werden.

Ich möchte, sowie die aktuellen Summen, weitere Spalten enthalten, wenn das Feld "TYPE" "P", "T" und "E" ist. Ich möchte, dass ich mit Daten belasse, die neue Kopfzeilen füllen (wenn ich sie in die Tabelle lege), bestehend aus SOURCE, DESCRIPTION, WEBORDERN, WEBAUFTRAGSWERT, TELEFONORDERN, TELEFONAUFTRAGSWERT, POSTORDERN, POSTAUFTRAGSWERT, GESAMTAUFTRÄGE , Gesamtauftragswert.

Ich muss die Daten für die neuen Header erstellen, so WEB ORDERS gibt mir die Gesamtbestellungen mit dem TYPE "E". Für sich genommen wäre das so etwas wie COUNT(ordernumber) count where type = "E", aber ich brauche mehrere davon und ich kann es nicht zur Arbeit bringen.

Es sieht derzeit wie folgt aus:

|Source|Source Description|Total Orders|Total Order Value| 
|DM1 |Daily Mail 1  |500   |5,000   | 

ich diese Informationen beibehalten möchten, aber fügen Sie in wie oben beschrieben, wie folgt aussehen.

|Source|Source Description|Web Orders|Web Order Value|Post Orders|Post Order Value|Mail Orders|Mail Order Value|Total Orders|Total Order Value| 
|DM1 |Daily Mail 1  |100  |1,000   |300  |3,000   |100  |1,000   |500   |5,000   | 

Ich hoffe, ich habe mein Problem ausreichend erklärt.

+0

Sie müssen diese zusätzlichen Spalten die ganze Zeit einschließen, und erhalten Sie ihre Werte als NULL in den Zeilen, die Sie nicht über das Ergebnis interessieren. Für verschiedene Werte, die auf der Spalte 'type' basieren, überprüfen Sie die 'CASE type WHEN ... THEN ... END'-Struktur. – Fredster

+0

MySQL oder MS SQL Server? Markieren Sie keine nicht betroffenen Produkte. (Eines dieser beiden Produkte behandelt die Gruppe manchmal etwas anders.) – jarlh

+0

MYSQL, amendierte Tags. –

Antwort

0

Verwenden Sie group_concat (Typ)als Typ in Ihrem Code. (wenn es falsch sry. pls erklären klar)

+0

Ich habe meine Frage –

+0

, wo ** Typ ** in der Tabelle ist, weitere Erläuterungen hinzugefügt. Sie müssen Ihre Frage neu schreiben. Ihre Frage ist nicht klar.IF (Ihre Spaltennamen, 'true', 'false') –

0

ich mich das verlassen wollen mit Header (wenn ich sie in den Tisch) von SOURCE, BESCHREIBUNG, WEB ORDERS, WEB ORDER VALUE, TELEFONORDER, TELEFONAUFTRAGSWERT, POSTORDER, POSTAUFTRAGSWERT, GESAMTE AUFTRÄGE, GESAMTORDNUNGSWERT.

Wenn ich richtig verstehe, möchten Sie Header zu Ihrem Ergebnis hinzufügen? Dies sollte getan werden durch:

SELECT Spaltenname (n) FROM Tabellenname AS Aliasname;

+0

ich eine weitere Klärung auf meine Frage –

+0

$ sql1 = " SELECT Datum, Quelle , source_desc , COUNT (Bestellnummer) zählen hinzugefügt haben, SUM (ordervalue) Wert , Typ , extra Spalte , extra Spalte , SUM (colum + colum + colum etc etc) VON DailyStats WHERE client = '$ client2' UND Ereignis <> 'B02' und Datum zwischen ‚$ start 'UND' $ end ' GRUPPE BY-Quelle ORDER BY-Quelle; "; –

+0

Die "extra" -Spalten müssen "COUNT (ordernumber) count sein, wobei type =" P "", "SUM (ordervalue) Wert, wobei type =" P "" etc etc, die ich nicht zu formatieren weiß –