SELFPHP: Version 5.8.1 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche


International PHP Conference


WebTech Conference



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



PHP Summit


Software Architecture Summit


:: Buchempfehlung ::

Das Zend Framework

Das Zend Framework zur Buchempfehlung
 
HTML5 Days


JavaScript Days


:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Deine Leidenschaft ist die Unterwasserfoto-grafie?


Dann ist Qozido genau das Richtige für Dich!

Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler ist da!

www.qozido.de

 


Zurück   PHP Forum > SELFPHP > MySQL

MySQL Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQL diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 01.02.2006, 13:05:53
basti123456 basti123456 ist offline
Anfänger
 
Registriert seit: Jan 2006
Beiträge: 14
basti123456 befindet sich auf einem aufstrebenden Ast
2 Tabellen zusammenfassen. Problem!

Hallo,

ich möchte 2 Tabellen in einer Verdichtungstabelle zusammen fassen. Und habe dabei ein Problem.
Die Tabellen haben den gleichen Aufbau und auch die Verdichtungstabelle hat die gleiche Struktur.
Es ist eine ID vorhanden, sowie zu dieser ID jeweils eine variable Anzahl und eine variable Summe, sowie einige andere Spalten.

Folgendes will ich tun:

In der ersten Abfrage suche ich alle Zeilen aus den beiden Tabellen raus, wo die IDs gleich sind, addiere für die jeweilige ID die Anzahl und die Summe, und schreibe sie dann in die Verdichtungstabelle.
(Das klappt soweit alles)

Code:
    insert into vd_win_stat_all
    select	a.okz, @abr_per, (a.anz + o.anz) as anz, (a.summe + o.summe) as summe, a.class
    from	#all a, #odd o
    where	a.okz=o.okz


Nun möchte ich zusätzlich aus den beiden anfänglichen Tabellen alle Datensätze in die Verdichtungstabelle schreiben, wo die ID der beiden Tabellen nicht gleich ist.

Code:
    insert into vd_win_stat_all
    select	a.okz, @abr_per, a.anz,a.summe, a.class
    from	#all a, #odd o
    where	a.okz<>o.okz
    group by a.okz, a.anz, a.summe, a.class

Wenn ich aber das mache, habe ich in meiner Verdichtungstabelle zig-mal Datensätze mit der selben ID drin.
Was kann ich da tun?!?!?!


Sprich, ich möchte im Endeffekt eine Verdichtungstabelle haben in der alle IDs aus den beiden Tabellen drinstehen und das jeweils nur einmal. Sollte ein und die selbe ID in beiden Tabellen auftauchen, sollen die Spalten anzahl und summe addiert werden und als ein datensatz in die Verdichtungstabelle geschrieben werden.

Geändert von basti123456 (01.02.2006 um 13:07:03 Uhr)
Mit Zitat antworten
  #2  
Alt 01.02.2006, 17:10:44
diver-network diver-network ist offline
Junior Member
 
Registriert seit: Apr 2003
Ort: TÜ
Beiträge: 337
diver-network befindet sich auf einem aufstrebenden Ast
AW: 2 Tabellen zusammenfassen. Problem!

Hi,

kurz und knapp:
Du kannst in diesem Fall nichts tun.
Grund:
Bei allen Datensätzen (bis auf ein paar wenige) wird die ID der Tabelle 1 ungleich einer ID in der Tabelle 2 sein.
Lösungsvorschlag:
Überleg' Dir zuerst eimal, was Du von der Logik her haben möchtest und über welche eindeutigen Werte (z.B. Spalte @abr_per) Du zumindest eine Zuordnung des wertes aus der Tabelle 1 zum passenden Wert aus der Tabelle 2 bekommst. Bei dieser Zuordnung kann natürlich die ID unterschiedlich sein (muß aber nicht).

Noch ein Tip:
Zwei Tabellen verknüpft man per SQL normalerweise mit einem (INNER) JOIN und nicht über ... FROM tabelle1 AS t1, tabelle2 AS t2 WHERE t1.wert = t2.wert.....
Grund: Es entsteht mit der WHERE Methode ein kartesisches Produkt.

HTH,

Andy
Mit Zitat antworten
  #3  
Alt 02.02.2006, 16:22:46
basti123456 basti123456 ist offline
Anfänger
 
Registriert seit: Jan 2006
Beiträge: 14
basti123456 befindet sich auf einem aufstrebenden Ast
AW: 2 Tabellen zusammenfassen. Problem!

Gut, mit dem Joinen isses kein Problem.

Die Logik, was ich haben will is ja da. Ich will aus den beiden bestehenden Tabellen eine einzige machen. Dabei soll, wenn die Schlüssel (hier okz) beider tabellen gleich sind, die anzahl (anz) und summe addiert werden und als ein datensatz in die verdichtungstabelle geschrieben werden. Die Datensätze wo der Schlüssel (okz) nur einmal in einer der beiden Tabellen vorkommt, sollen so wie sie sind in die verdichtungstabelle übernommen werden.


kann man im SQL-Server-Enterprise-Manager beim Erstellen von Prozeduren auch mit Array arbeiten ???
Mit Zitat antworten
  #4  
Alt 02.02.2006, 17:19:48
diver-network diver-network ist offline
Junior Member
 
Registriert seit: Apr 2003
Ort: TÜ
Beiträge: 337
diver-network befindet sich auf einem aufstrebenden Ast
AW: 2 Tabellen zusammenfassen. Problem!

Hi,

ok, ich versteh' schon, was Du willst.
Solange Du aber Deine Tabellen über tab1.id <> tab2.id verknüpfst wirst Du immer zig gleiche IDs als Ergebnis bekommen.

Meine, allerdings noch nicht bis zum Ende durchdachte Idee:

Schritt 1:
Hole Dir alle Werte aus Tabelle1, deren Ids nicht in Tabelle2 sind
(SELECT [DISTINCT] t1.* FROM tabelle1 AS t1 WHERE t1.id NOT IN (SELECT [DISTINCT] t2.id FROM tabelle2 AS t2)
und füll diese Werte in eine neue Tabelle ein.

Schritt 2:
Wiederhole Schritt 1 mit den umgekehrten Tabellennamen.

Dies solltest Du auch in einer Stored Procedure machen können.

Bitte überlege selber noch mal, ob dieser Ansatz wirklich passt und arbeite in KEINEM FALL mit der produktiven Endtabelle!


Das mit den Arrays weiß ich leider auch nicht, so gut kenn' ich mich im SQL Server auch nicht aus o((

HTH,

Andy

P.S.: Dies ist ein PHP und MySQL Forum, kein M$-SQL Server Forum ;-)
Mit Zitat antworten
  #5  
Alt 03.02.2006, 08:01:08
basti123456 basti123456 ist offline
Anfänger
 
Registriert seit: Jan 2006
Beiträge: 14
basti123456 befindet sich auf einem aufstrebenden Ast
AW: 2 Tabellen zusammenfassen. Problem!

ja, ich weiß, aber ich weiß auch, dass ich hier immer schnelle und gute Antworten bekomme.

Danke für die Antworten, jetzt klappt es so, wie ich es mir vorgestellt habe.

Geändert von basti123456 (03.02.2006 um 09:39:46 Uhr)
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit 2 tabellen spalten in einer while schleife ! akasa PHP Grundlagen 6 08.06.2005 14:00:07
SQL 2 Tabellen zu einer zusammenfassen [Problem] Spi MySQL 3 29.03.2005 20:28:23
Problem mit Tabellen.... TheGreatDJ MySQL 10 26.10.2004 10:18:21
Abfrage Problem mit mehren Tabellen... Skar MySQL 2 13.08.2004 14:16:56
tabellen problem in der while schleife Phil2505 PHP Grundlagen 4 19.04.2004 12:44:52


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:35:55 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.


© 2001-2014 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt