Forum - Beitrag anzeigen

Datenbanken/SQL - Frage zu Query of Query

Icon Pfeil Startseite Icon Pfeil Kategorie Icon Pfeil Suche

Icon Forum Beitrag vom 22.02.2015 12:16 (5554 Aufrufe)
Name: thoe
Titel: Frage zu Query of Query
Inhalt: Hallo SQL'ler,

ich hab mal ne Frage zu Query of Query.

Ich hab hier eine funktionierende Abfrage auf die ich eine anschließende Abfrage per dbtype="query" stelle um den höchsten Wert aus drei verschiedenen Spalten zu ermitteln.

Hier die beiden Abfragen:

1.Abfrage direkt auf die DB
<cfquery name="pm800Values" datasource="#database#">
SELECT DATETIMEFROMPARTS(2015, 01, piv1.tag, piv1.stunde,00,00,00) AS TimeStampUTC, piv1.tag AS tag, piv1.stunde, piv1.[515] AS I1_MAX, piv1.[516] AS I2_MAX, piv1.[517] AS I3_MAX, piv1.[107] AS KW_MAX,
piv2.[515] AS I1_AVG, piv2.[516] AS I2_AVG, piv2.[517] AS I3_AVG, piv2.[107] AS KW_AVG, (piv2.[515]+piv2.[516]+piv2.[517]) AS SummePhasenAVG
FROM
(SELECT DATEPART(DAY, TimeStampUTC) AS tag, DATEPART(HOUR, TimeStampUTC) AS stunde, SourceName, ROUND(Value,1) AS Value, quantityID, TimeStampUTC
FROM vDataLogChannelValueTHOE WHERE ID IN (5)
AND DATEPART(YEAR, TimestampUTC) = 2015
AND DATEPART(MONTH, TimestampUTC) = 1) p
PIVOT
(
MAX(Value)
FOR quantityID IN
([515], [516], [517], [107])
) AS piv1,
(SELECT DATEPART(DAY, TimeStampUTC) AS tag, DATEPART(HOUR, TimeStampUTC) AS stunde, SourceName, ROUND(Value,1) AS Value, quantityID
FROM vDataLogChannelValueTHOE WHERE ID IN (5)
AND DATEPART(YEAR, TimestampUTC) = 2015
AND DATEPART(MONTH, TimestampUTC) = 1) p
PIVOT
(
AVG(Value)
FOR quantityID IN
([515], [516], [517], [107])
) AS piv2
WHERE piv1.tag = piv2.tag AND piv1.stunde = piv2.stunde
ORDER BY piv1.tag, piv1.stunde;
</cfquery>

-------------------------------------------------------------

2.Abfrage per QoQ auf die 1.Abfrage
<cfquery dbtype="query" name="amp_max">
SELECT MAX(MaxSpaltenWert) AS MaxTabellenWert
FROM
(
SELECT MAX(ISNULL(I1_MAX,0)) AS MaxSpaltenWert FROM pm800Values
UNION ALL
SELECT MAX(ISNULL(I2_MAX,0)) AS MaxSpaltenWert FROM pm800Values
UNION ALL
SELECT MAX(ISNULL(I3_MAX,0)) AS MaxSpaltenWert FROM pm800Values
) AS orig_t;
</cfquery>


Fehlermeldung:

Encountered "(" at line 3, column 5.
Was expecting:
<S_IDENTIFIER> ...


Wenn ich die 2.Abfrage direkt auf die DB loslasse:

SELECT MAX(MaxSpaltenWert) AS MaxTabellenWert
FROM
(
SELECT MAX(ISNULL(Value,0)) AS MaxSpaltenWert FROM vDataLogChannelValueTHOE
WHERE quantityID = 515 AND ID = 5 AND DATEPART(YEAR, TimeStampUTC) = 2015 AND DATEPART(MONTH, TimeStampUTC) = 1
UNION ALL
SELECT MAX(ISNULL(Value,0)) AS MaxSpaltenWert FROM vDataLogChannelValueTHOE
WHERE quantityID = 516 AND ID = 5 AND DATEPART(YEAR, TimeStampUTC) = 2015 AND DATEPART(MONTH, TimeStampUTC) = 1
UNION ALL
SELECT MAX(ISNULL(Value,0)) AS MaxSpaltenWert FROM vDataLogChannelValueTHOE
WHERE quantityID = 517 AND ID = 5 AND DATEPART(YEAR, TimeStampUTC) = 2015 AND DATEPART(MONTH, TimeStampUTC) = 1
) AS orig_t;

....funktioniert sie.
Muss ich in der QoQ-Abfrage noch etwas ändern oder ist hier einfach das Ende von Railo erreicht?
Kann mir jemand helfen oder einen Tipp geben?

Gruß Thomas

Antworten
Icon Forum Frage zu Query of Query (thoe, 22.02.2015 12:16)

Bitte melden Sie sich kostenlos an, um eine Antwort auf diesen Beitrag zu erstellen.


Das deutsche ColdFusion-Forum cfml.de ist das Portal für Einsteiger und Experten zum Thema ColdFusion und der ColdFusion Markup Language (CFML).

© 2017 Webdesign & Hosting: CHC ONLINE Kassel | SOLVA Content-Management-System CMS
Urlaub-Angebote.de - Urlaub mit Bestpreis-Garantie buchen