_
toggle menu eXmatrikulationsamt.de
online: 376 gäste
Hinweis

Offtopic und Spam wird ohne Hinweis gelöscht!

off bartman121 | post 12 Mar 2011, 16:31 | Themenlink
Mahlzeit,

brauche mal einen klugen Kopf der mir bei einem Problem behilflich sein kann

habe eine Tabelle, die Messwerte verschiedener Messtellen enthält

also
Messtellen_ID, timestamp, messwert

brauche eine Datenbankabfrage die mir folgendes liefert:
CODE

                            Messtellen_ID(1)            Messtellen_ID(2)
timestamp              messwert(1)                  messwert(2)

Also ne Kreuztabelle....

idealerweise sollte man für jede messstellen_ID (einzeln!) den timestamp noch manipulieren können indem man Stunden addiert/subtrahiert

Hinten dran müssen dann noch nen paar andere Joins und so gebaut werden ...

Wenn jemand Interesse und know-how hat, dann gerne melden ...

Ich stelle mal 2 Kisten bier bzw. das ganze als echtes Geld als Belohnung in Aussicht.





ProfilPM
 
Antworten(1 - 6)
aktsizr off post 12 Mar 2011, 16:35 | Antwort#2
versteh noch nicht so ganz was du eigentlich willst.. du willst jeweils 2 messwerte mit gleichen timestamp einer tabelle anzeigen? join condition a.timestamp = b.timestamp?

Dieser Beitrag wurde von aktsizr: 12 Mar 2011, 16:36 bearbeitet
ZitierenTOP
bartman121 off post 12 Mar 2011, 16:44 | Antwort#3
joar, ich bin halt nur zu pläd nen query zu bauen mit dem ich nen join auf die gleiche tabelle machen kann ...

ich brauch irgendwie das hier:

select ('timestamp+$hier evetuelle manipulation') as 'timestamp', messwert as '$id1' from messwerte AS T1 where messstellen_id='$id1'

select ('timestamp+$hier evetuelle manipulation')as 'timestamp', messwert as '$id2' from messwerte AS T2 where messstellen_id='$id2'

... $id3 ....

... $id4 ....

....

... $id_n ....

das ganze mus ich irgendwie joinen aber ich bin zu doof dem server das zu erklären, dass mich seine drecks Fehlermeldungen nicht interessieren ...
(Prozeduren und Views koennen nicht angelegt werden!)

Das ganze muss ziemlich variabel gebaut werden, da die Abfrage später durch ein Programm generiert werden soll .... da hängen noch einige andere joins mit dran ...

Ist das irgendwie verständlich?

Dieser Beitrag wurde von bartman121: 12 Mar 2011, 16:50 bearbeitet
ZitierenTOP
aktsizr off post 12 Mar 2011, 16:55 | Antwort#4
mysql> select * from test;
+----+---------------------+-------+
| id | ts | value |
+----+---------------------+-------+
| 1 | 2011-03-12 15:45:52 | 5 |
| 2 | 2011-03-12 15:45:52 | 5 |
| 3 | 2011-03-12 15:46:01 | 5 |
| 4 | 2011-03-12 15:46:06 | 5 |
| 5 | 2011-03-12 15:46:06 | 7 |
| 6 | 2011-03-12 15:46:11 | 3 |
| 7 | 2011-03-12 15:46:11 | 9 |
| 8 | 2011-03-12 15:46:17 | 2 |
| 9 | 2011-03-12 15:46:17 | 0 |
+----+---------------------+-------+
9 rows in set (0.00 sec)

mysql> select a.ts as timestamp, a.value as 'messwert1', b.value as 'messwert2' from test a cross join test b on (a.ts = b.ts);
+---------------------+-----------+-----------+
| timestamp | messwert1 | messwert2 |
+---------------------+-----------+-----------+
| 2011-03-12 15:45:52 | 5 | 5 |
| 2011-03-12 15:45:52 | 5 | 5 |
| 2011-03-12 15:45:52 | 5 | 5 |
| 2011-03-12 15:45:52 | 5 | 5 |
| 2011-03-12 15:46:01 | 5 | 5 |
| 2011-03-12 15:46:06 | 5 | 5 |
| 2011-03-12 15:46:06 | 7 | 5 |
| 2011-03-12 15:46:06 | 5 | 7 |
| 2011-03-12 15:46:06 | 7 | 7 |
| 2011-03-12 15:46:11 | 3 | 3 |
| 2011-03-12 15:46:11 | 9 | 3 |
| 2011-03-12 15:46:11 | 3 | 9 |
| 2011-03-12 15:46:11 | 9 | 9 |
| 2011-03-12 15:46:17 | 2 | 2 |
| 2011-03-12 15:46:17 | 0 | 2 |
| 2011-03-12 15:46:17 | 2 | 0 |
| 2011-03-12 15:46:17 | 0 | 0 |
+---------------------+-----------+-----------+
17 rows in set (0.00 sec)

mysql> select distinct a.ts as timestamp, a.value as 'messwert1', b.value as 'messwert2' from test a cross join test b on (a.ts = b.ts);
+---------------------+-----------+-----------+
| timestamp | messwert1 | messwert2 |
+---------------------+-----------+-----------+
| 2011-03-12 15:45:52 | 5 | 5 |
| 2011-03-12 15:46:01 | 5 | 5 |
| 2011-03-12 15:46:06 | 5 | 5 |
| 2011-03-12 15:46:06 | 7 | 5 |
| 2011-03-12 15:46:06 | 5 | 7 |
| 2011-03-12 15:46:06 | 7 | 7 |
| 2011-03-12 15:46:11 | 3 | 3 |
| 2011-03-12 15:46:11 | 9 | 3 |
| 2011-03-12 15:46:11 | 3 | 9 |
| 2011-03-12 15:46:11 | 9 | 9 |
| 2011-03-12 15:46:17 | 2 | 2 |
| 2011-03-12 15:46:17 | 0 | 2 |
| 2011-03-12 15:46:17 | 2 | 0 |
| 2011-03-12 15:46:17 | 0 | 0 |
+---------------------+-----------+-----------+
14 rows in set (0.00 sec)

mysql> select distinct a.ts as timestamp, a.value as 'messwert1', b.value as 'messwert2' from test a cross join test b on (a.ts = b.ts) where a.id <> b.id;
+---------------------+-----------+-----------+
| timestamp | messwert1 | messwert2 |
+---------------------+-----------+-----------+
| 2011-03-12 15:45:52 | 5 | 5 |
| 2011-03-12 15:46:06 | 7 | 5 |
| 2011-03-12 15:46:06 | 5 | 7 |
| 2011-03-12 15:46:11 | 9 | 3 |
| 2011-03-12 15:46:11 | 3 | 9 |
| 2011-03-12 15:46:17 | 0 | 2 |
| 2011-03-12 15:46:17 | 2 | 0 |
+---------------------+-----------+-----------+
7 rows in set (0.00 sec)

So? Wobei das Distinct vielleicht mit etwas Vorsicht zu geniessen wäre. Außerdem hast du Informationsverlust, wenn es zu einer Timestamp keine andere Timestamp gibt. Wenn die trotzdem angezeigt werden sollen, muss ein OUTER JOIN verwendet werden.

Dieser Beitrag wurde von aktsizr: 12 Mar 2011, 16:59 bearbeitet
ZitierenTOP
bartman121 off post 12 Mar 2011, 17:17 | Antwort#5
*staun* shocking.gif

genau das ist die Lösung die ich brauchte....

da hängt jetzt noch einiges mit dran ... wenn du bereit bist mir das zeug alles zu bauen, was ich brauche (Erklärung sollte man persönlich machen), dann kriegste deine Belohnung

aktsizr hat vorrang, wenn er nicht will, dann darf jemand anderes smile.gif

ZitierenTOP
aktsizr off post 12 Mar 2011, 17:26 | Antwort#6
hmmmm... ich dachte ich krieg das bier nur für das (immernoch unzulängliche aber leicht zu fixende) sql an sich?
ZitierenTOP
bartman121 off post 12 Mar 2011, 17:30 | Antwort#7
Zitat(aktsizr @ 12 Mar 2011, 16:26)
hmmmm... ich dachte ich krieg das bier nur für das (immernoch unzulängliche aber leicht zu fixende) sql an sich?
*


Zitat(erstes post)
Hinten dran müssen dann noch nen paar andere Joins und so gebaut werden ...


.oO
ZitierenTOP
1 Nutzer liest/lesen dieses Thema (1 Gäste)
0 Mitglieder: