Schrift
[thread]3400[/thread]

sehr Komplexe Abfrage: logik Problemchen (Seite 3)



<< |< 1 2 3 >| >> 27 Einträge, 3 Seiten
eisbeer
 2004-02-09 17:02
#35966 #35966
User since
2003-08-29
347 Artikel
BenutzerIn
[Homepage] [default_avatar]
Noch ne Frage:
Wie gehts sowas:
[sql]SELECT
tasks.ID,
CASE
WHEN adressbook.firma IS NOT NULL THEN firma
ELSE CONCAT(adressbook.name, ", ", adressbook.vorname)
END AS kunde
FROM tasks INNER JOIN adressbook ON tasks.KID = adressbook.ID
INNER JOIN task_types ON tasks.TID = task_types.TID
INNER JOIN task_groups ON tasks.TGID = task_groups.TGID
ORDER BY kunde ASC;
[/sql]
Die einzelnen Aufträge in tasks haben verschiedene KIDs (Kunden-IDs).
Mit dem ganzen mischmasch mit den INNER JOINs von oben haben wir
ja mittlerweile hinbekommen, das ich mit einem Statement für jeden Auftag
nichtnur die KID, sondern auhc gleich den Kundenname und seine Firma
mitbekommen, aber jetzt muss in der Tabelle adressbook das Feld "firma"
nicht gesetzt sein.
Wenn es das doch ist, soll er mir bei der Abfrage die Spalte "kunde" mit dem
Inhalt von adressbook.firma befüllen, wenn "firma" NICHT gesetzt ist, will
ich statt dessen "kunde" als ein CONCAT von adressbook.name und
adressbook.vorname ... Geht denn sowas?
Mein Problem ist, das ich meine Abfrage nach den Kunden sortieren muss,
und wenn ein Auftrag nicht von einer Firma, sondern von einer privat-
Person aufgegeben wurde, muss ich eben z.B. "Mustermann, Max" als
"kunden"-Spalte sehn...

Klappt aber nicht. Sobald adressbook.firma gesetzt ist, ist die Spalte "kunde"
brav = "firma", aber wenn firma nicht gesetzt ist, ist "kunde" leer. :rock:

Verlange ich SQL zuviel ab oder versteh ich es blos nicht !?
Die meisten PC Probleme befinden sich zwischen Bildschirm und Stuhl...
renee
 2004-02-09 17:25
#35967 #35967
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Hast Du schon mal das probiert:[sql]SELECT ifnull(addressbook.firma,concat(addressbook.name,",",addressbook.vorname)) AS kunde from table...[/sql]
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
renee
 2004-02-09 17:28
#35968 #35968
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
hier findest Du weiteres zum lesen:MySQL
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
eisbeer
 2004-02-09 20:20
#35969 #35969
User since
2003-08-29
347 Artikel
BenutzerIn
[Homepage] [default_avatar]
Er füllt brav "kunde" aus, wenn adressbook.firma gesetzt ist,
aber andernfalls macht er garnix...

Nichtmal so:
[sql]SELECT IFNULL(testwert1,'test') AS kunde FROM test ORDER BY kunde ASC;
[/sql]

mit test.sql
[sql]CREATE TABLE `test` (
 `id` tinyint(3) unsigned NOT NULL auto_increment,
 `testwert1` varchar(128) default '0',
 `testwert2` varchar(128) default '0',
 `testwert3` varchar(128) default '0',
 PRIMARY KEY  (`id`),
 UNIQUE KEY `id` (`id`),
 KEY `id_2` (`id`)
) TYPE =MyISAM;

INSERT INTO test VALUES("1","1wert1","1wert2","1wert3");
INSERT INTO test VALUES("2","","2wert2","2wert3");
INSERT INTO test VALUES("3","3wert1","3wert2","3wert3");
[/sql]\n\n

<!--EDIT|eisbeer|1076351528-->
Die meisten PC Probleme befinden sich zwischen Bildschirm und Stuhl...
eisbeer
 2004-02-09 20:36
#35970 #35970
User since
2003-08-29
347 Artikel
BenutzerIn
[Homepage] [default_avatar]
Meine Lösung, very dirty...

[sql]IF(LENGTH(firma) = 0 OR firma = '0', CONCAT(adressbook.name,', ',adressbook.vorname), firma)
[/sql]
Die meisten PC Probleme befinden sich zwischen Bildschirm und Stuhl...
renee
 2004-02-10 08:44
#35971 #35971
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
probier mal das hier:[sql]SELECT if(testwert1,testwert1,CONCAT(testwert2,',',testwert3)) AS kunde FROM test ORDER BY kunde ASC LIMIT 0, 30[/sql]Bei mir hat's funktioniert...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
eisbeer
 2004-02-10 19:23
#35972 #35972
User since
2003-08-29
347 Artikel
BenutzerIn
[Homepage] [default_avatar]
Nio, klappt einfach nicht...
Egal, meine version funktioniert jetzt irgendwie.
Die meisten PC Probleme befinden sich zwischen Bildschirm und Stuhl...
<< |< 1 2 3 >| >> 27 Einträge, 3 Seiten



View all threads created 2004-02-07 18:03.