Zum Inhalt springen

MadCro

Mitglieder
  • Gesamte Inhalte

    192
  • Benutzer seit

  • Letzter Besuch

Beiträge von MadCro

  1. Hej Termin,

    Du bist ja der hammer - danke für Deinen support !

    Leider konnte ich mit Deinem Query nicht das gewünschte Ergebniss auf meiner "reellen" Datenbank nachstellen (obwohl Deine dummy DB die Umgebung abbildet).

    Meine aktuelle Lösung sieht nun so aus:

    
    
    SELECT* 
    
    FROM crosstable AS t1, crosstable AS t2
    
    LEFT JOIN personen ON t2.persoID = personen.persoID
    
    WHERE t1.persoID = t2.persoID
    
    AND t1.SkillID =1
    
    AND t2.SkillID =3
    
    ORDERBY t1.rating DESC , t2.rating DESC 
    
    LIMIT 0 , 30

    funkzt auch ganz gut mit 2 eigenschaften (Skills), muss mal schauen wir es dann wird wenn man mehr als die zwei Skills berücksichtigen muss.

    Wenn Jemand Optimierungs-möglichkeiten sieht - gerne !

    Danke für Euere Unterstützung !

  2. Hi Termin,

    danke für den Aufwand und die Unterstützung.

    Komme leider auf die Demo DB nicht drauf, hab keine zugangdaten und erkenne aktuell auch nicht wo ich mich da anmelden kann.

    Das Query funkzt leider nicht. "1 OR 2" - ich muss hier ein AND haben, also die Person muss sowohl die Skill 1 als AUCH die Skill 2 zugewiesen haben, und dann für beide Skills geordnet nach Rating absteigend.

    @Pixie - es sind jetzt schon mehrere Skills - danke für den Hinweis mit "pivot" schaue ich mir an

  3. Hi Termi,

    ich will alle Personen haben die sowohl Skill 1 als auch Skill 3 haben, aber so geordnet das mir zuerst die Personen mit dem höchsten Rating für Skill 1 und dann mit dem höchsten Rating für Skill 3 zurück gegeben werden.

    PersoKriterium1 und PersoKriterium2 sind "einfach nur Felder", die spielen ja beim ORDER BY keine Rolle. ich bekomme schon die richtigen Personen (also solche die zu dem WHERE matchen) zurück aber nicht in der richtigen Rheinfolge.

    Person zum Skill-Rating

                  
    
                    Skill 1     Skill 3
    
    Perso1           100        80
    
    Perso2           100        60
    
    
    
    in disem Fall sollte Perso1 zuerst ausgegeben werden, ich bekomme aber Perso2 als erstes. Und das nur wenn ich mir noch die Daten der Person über die Personentabelle via LEFT JOIN hole, ohne das LEFT JOIN ist es umgekehrt - was ich aber eher als Zufall ansehen. Ich vermutte das, dass Order by beim
    
    AND persoID IN (SELECT persoID FROM crosstable  WHERE SkillID = 3 ORDER BY rating desc)

    greift . bin am verzweifeln :(

  4. Hallo Jejerod ,

    danke für Deine Antwort

    Leider geht ein Group by Rating nicht, da die Skills prios haben, hatte ich vergessen dazu zu sagen - sorry mein Fehler !

    ich habe aber Deinen Ansatz mit dem SubSelect aufgenommen, muss aber feststellen das man anscheinden bei den SubSelects keinen ORDER MY machen kann, bzw. das scheint mySQL egal zu sein, Ansatz war:

    
    SELECT * FROM crosstable  WHERE SkillID = 1 AND persoID IN (SELECT persoID FROM crosstable  WHERE SkillID = 3 ORDER BY rating desc) ORDER BY rating desc
    
     
    dies sollte nun für den Fall gehen das zwei Skills in Frage kommen, wenn es mehr als zwei werden sollen kann man dann noch ein SubSelect erweitern - so zumindest mein Ansatz. Scheint mir aber etwas "dreckig" zu sein . Wenn ich das so mache wie oben, "scheint es" erstmal zu klappe, d.h. ich bekomme eine ergebniss menge in der saubren Reihenfolge (abhänging von den Ratings) - kann aber auch zufall sein - da bin ich mir eben nicht sicher ob das ORDER BY im SubSelect funzt wenn ich dann aber noch eine dritte Tabelle, und zwar die Personen mit LEFT JOIN einbinden und noch aus dieser Tabelle zwei Kriterien im WHERE Teil habe, dann zer*******t es mir wieder die Reihenfolge.
    
    SELECT * FROM crosstable LEFT JOIN personal  WHERE PersoKriterium1='Y' AND PersoKriterium2=5 AND
    
    SkillID = 1 AND persoID IN (SELECT persoID FROM crosstable  WHERE SkillID = 3 ORDER BY rating desc) ORDER BY rating desc
    
    

  5. Hi CSharp92,

    danke für Deine Antwort.

    Nochmal die Anforderung

    ich kenne die ID der Person nicht, genau die will ich ja herausfinden und zwar über die "Skills"

    hab inzwischen rausgefunden das es über ein self join gehen soll, bekomme es aber immer noch nicht so hin wie ich es brauche

    select * FROM tblxuser2skill t1, tblxuser2skill t2 , tbluser

    WHERE t1.A2Q_A_ID=A_ID AND (t1.A2Q_AQCS_ID=1 AND t2.A2Q_AQCS_ID=2)

    ORDER BY t1.A2Q_Rating DESC, t2.A2Q_Rating DESC

    In tblxuser2skill steht die Zurdnung Person zur Skill, in tbluser die Personen

    A2Q_A_ID ist die ID der Peson in der Tabelle tblxuser2skill genau so wie die A_ID

    A2Q_AQCS_ID ist die ID der Eigenschaft/Skill

    Ich bekomme mit der Abfrage mehrfach die selbe Zeile zurück, hmm

    EDIT:

    ok hab gerade gelernt das SELF JOINS nur Sinn bei Hierarchien in einer Tabelle machen, was bei mir nicht der fall ist, also wieder bei 0 :(

  6. Hallo zusammen,

    komme nicht weiter und brauche bitte Untertützung.

    Hab eine Tabelle in welcher mehrere Eigenschaften stehen,

    einere weitere Tabelle in welcher Personen stehen und eine dritte in welcher die Zuordnung Person zur Eigeschaft hinterlegt ist, dabei gilt jede person kann n eigeschaften haben und dabei auch eine "Benotung" (wie gut sie/er diese Eigenschaft kann) dieser Eigeschaft.

    D.h. z.B.

    Person:

    persoID: 1 | persoName: M. Mustermann

    persoID: 2 | persoName: F. Musterfrau

    Eigenschaft:

    SkillID: 1 | SkillKommentar: Finanzen

    SkillID: 2 | SkillKommentar: Technik

    SkillID: 3 | SkillKommentar: Sprachen

    und entsprechend die Cross Tabelle

    persoID: 1 SkillID:2 rating:100%

    persoID: 1 SkillID:3 rating:80%

    persoID: 2 SkillID:3 rating:80%

    persoID: 2 SkillID:1 rating:20%

    usw.

    Anzahl Personen und Eigeschaften ist "n"

    Jetzt brauche ich ein schlaues Query mit welchem ich alle Personen bekomme die

    Eigeschaft1 und Eingeschaft2 haben und zwar sortiert nach dem "rating"

    Hab das nun über JOIN der Tabellen auf sich selbst die ganze Zeit versucht komme aber nicht weiter, zweiter Ansatz war über temporty tabellen - das hat mich aber auch nicht zum Ziel gebracht. Ein "WHERE SkillID IN (Skill1 AND Skill2)" funkzt auch nicht

    Bin für jeden Ansatz dankbar !

    VG

  7. Hi,

    bin auf der Suche nach einem Tool mit welchem ich unter vista mehrer Desktops haben kann.

    Hab bis jetzt Dexpot, Vista/Xp Virtual Destkop Manager, VirtuaWin und diverse andere ausporbiert, alles super tools nur haben sie alle eins gemeinsam sobald ich unter Destkop1 ein ICON ablege/ändere wird es auch unter allen andere Desktops angezeigt bzw. verändert, Aber genau das will ich nicht, ich will ein Destktop für Arbeit und ein Destkop für privat ICONs haben. Bin davon ausgegangen das genau das der Sinn von solchen tools ist, da lag ich falsch in der annahme :(

    kann mir evtl. jemand ein tool nennen mit welchem das möglich ich was ich vor haben ?

    Danke!!

    LG

  8. Hallo lang,

    danke Dir das Du so ausführlich antwortest.

    Paar Infos zu sgd :

    also z.B. Fernstudium als Datenbank Programmiere (Oracle)

    Dauer : 12 Monaten bei ca. 15 Std. Zeitinvestition in der Woche

    Umfang : scheint mir auf der ersten blick OK zu sein, ist halt viel Theorie und es fehlt wie Du schon sagtes der Bezug zur Praxis

    Preis : 130 Euro / Monat

    Ich werde mir wohl das ganze dann noch mal in Ruhe durchlesen müssen.

    Was mir aber schon am Anfang aufgefallen ist und was auch der Grund ist wieso ich nach Alternativen suche ist, das die Methode die APO angeht ist das man das ganze als "Vollzeit" Aufgabe und mit dem Betrieb (Firma) machen muss, da ist mein Problem ich will das gern als Fern/Abend - Weiterbildung machen würde und zwar ganz ohne den Bedarf der Hilfe / Genehmigung (was auch immer) meiner Firma.

    Der Grund das ich diese ganze Weiterbildung machen will ist, damit ich mal vorankommen und das heißt für mich Firma wechseln weil ich in der jetzigen Firma (5 Mann Betrieb) keine Chance habe weiter zukommen oder etwas zu erreichen.

    Du bist also der Meinung das das Zertifikat, wie z.B. von der sgd, einen nicht besonders viel bringt und von der Wirtschaft nicht erwähnenswert beachtet wird ?!

    Danke !

    Gruß

    MadCro

  9. Hallo zusammen,

    hat sich das eigentlich in der letzten Zeit was getan ?

    gibt es nun konkrete Weiterbildungs- Möglichkeiten für die die mit einer FI (AE) Ausbildung fertig und im Berufsleben sind ?

    Hab mal irgendwann was von einem Master oder so was gelesen den man bei der IHK machen kann (Thema von Azubi zum Master) kann aber nichts mehr zu dem Thema finden zumindest nicht bei meiner IHK (Frankfurt)

    Hat den jemand Infos oder selbst Erfahrung sammeln können zum Thema Weiterbildung nach Fi Ausbildung ?

    Danke

    Gruß

    MadCro :marine

  10. ok also fals es jemand interessiert, der ganze code nun

    
    
     StorysArray = new Array();
    
        j = 0 ;
    
    
    
       function ShowComment(form, SelectName)
    
       {
    
    
             for(var i = 0; i < form.elements[SelectName].length; i++)
    
      	 {  
    
      	 	imArray = false ;
    
    
    		 if(form.elements[SelectName][i].selected == true )
    
    		 { 
    
    
    		 	if(StorysArray.length > 0)
    
    		 	{
    
    
    		 		for(var k=0; k< StorysArray.length ; k++) // für jede story die schon im array ist
    
    		 		{
    
    		 			if(StorysArray[k] == form.elements[SelectName][i].value)
    
    		 			{
    
    		 				imArray = true ;	
    
    		 			}
    
    
    		 		}
    
    
    		 	        if(imArray == false)
    
    		                {
    
    
    		       	           StorysArray[j] = form.elements[SelectName][i].value ; // noch nicht im array also schreib rein
    
    		                   j++ ;
    
    		                } 
    
    
    		 	}
    
    		 	else // es ist der erste Aufruf das array ist noch leer
    
    		 	{   
    
    		 	       StorysArray[j] = form.elements[SelectName][i].value ;
    
    		               j++ ;
    
    
    		 	}	
    
    
    		 }
    
    		 else // ist nicht selectiert mal gucken ob ich es aus dem array werfen muss
    
    		 {    
    
    
    		 		for(var k=0; k< StorysArray.length ; k++) // für jede story die schon im array ist
    
    		 		{
    
    		 		        if(StorysArray[k] == form.elements[SelectName][i].value) // das element ist im array aber wurde "deselectiert" 
    
    		 			{ 
    
    		 				  StorysArray = StorysArray.slice(0,k);
    
    
    		 			}
    
    
    		 		}
    
    
    		 }
    
    
    	}
    
    
    	          ST_ID = StorysArray[StorysArray.length-1] ; // der letze eintrag im array muss doch dem letzen ausgesuchten Eintrag entsprechen 
    
    		 // alert(ST_ID);
    
    
    		  qPopUp("show_story_comment.php?ST_ID="+ST_ID) ;
    
    
       }
    
    
    
    
    

  11. hi,

    ja die Idee mit dem Array habe ich auch schon gehabt, aber das array wird jedes mal neu inizlalisiert wenn ich dei Funktion die bei OnChange (oder onClick) aufgerufen wird und damit sind alle daten die ich im Array hate doch wieder weg

    hehe ich idiot ich kann ja das array aushalb der function inizialisieren :floet:

    jetzt kalppt, danke allen !!

    
    
       function ShowComment(form, SelectName)
    
       {
    
    
             for(var i = 0; i < form.elements[SelectName].length; i++)
    
      	 { 
    
    
      	 	imArray = false ;
    
    
    
    		 if(form.elements[SelectName][i].selected == true )
    
    		 { 
    
    
    		 	if(StorysArray.length > 0)
    
    		 	{
    
    
    		 		for(var k=0; k< StorysArray.length ; k++) // für jede story die schon im array ist
    
    		 		{
    
    		 			if(StorysArray[k] == form.elements[SelectName][i].value)
    
    		 			{
    
    		 				imArray = true ;	
    
    		 			}
    
    
    		 		}
    
    
    		 	        if(imArray == false)
    
    		                {
    
    
    		       	           StorysArray[j] = form.elements[SelectName][i].value ; // noch nicht im array also schreib rein
    
    		                   j++ ;
    
    		                } 
    
    
    		 	}
    
    		 	else
    
    		 	{   
    
    		 	       StorysArray[j] = form.elements[SelectName][i].value ;
    
    		               j++ ;
    
    
    		 	}	
    
    		 	 	}
    
    
    	          last_ID = StorysArray[StorysArray.length-1] ; // der letze eintrag im array muss doch dem letzen ausgesuchten Eintrag entsprechen 
    
    		  alert(last_ID);
    
    
       }
    
    
    
    

    EDIT

    doch nicht ganz, was mache ich den wenn ein Eintrag wieder deselctiert wurde :confused:

  12. hi,

    ja die Idee mit dem Array habe ich auch schon gehabt, aber das array wird jedes mal neu inizlalisiert wenn ich dei Funktion die bei OnChange (oder onClick) aufgerufen wird und damit sind alle daten die ich im Array hate doch wieder weg

  13. Naja, dann wirst du bei jedem onChange_click dir die gerade ausgebwählte ID irgendwo merken müssen(Verstecktes Listenfeld etc.), anders (also bei direkter Feldabfrage) merkt man nur die ausgweählten, nicht aber die Reihenfolge der Auswahl.

    das geht nicht, weil lastSelectedIndex mir immer nur den Index ausgibt der der kleinste Index der gewählten Einträge ist

    das hier genau so

    <select ...blabla... onChange="JavaScript:ShowData(this.value)" >

    function ShowData(value)

    {

    alert (value) ;

    }

    es wird immer der Wert ausgegeben der als erster in der Liste steht (also den kleinsten Index hat) :(

  14. zeig einfach bei jedem "onchange" die Infos zu dem ausgewählten artikel an.

    wenn es so einfach wäre :mod:

    das Problem ist wenn ich einen Eintrag mit der ID 1 auswähle dann einen Eintrag mit der ID 5 und dann einen Eintrag mit der ID 3 dann sieht meine List so aus 1,3,5 aber ich will das sie so aussieht 1,5,3 also in der Reihe in der die Einträge auch ausgewählt wurden, damit ich als letzten ausgewählenten Eintrag den Eintrag mit der ID 3 habe :(

  15. hi zusammen,

    hab ein kleines select feld was "multiple" ist, d.h. es können mehrere Einträge ausgewählt werden, nun muß ich wissen welche Einträge ich ausgewählt habe, soweit auch kein Problem klappt alles wunderbar.

     for(var i = 0; i < form.customer_having_storys.length; i++)
    
               {
    
                  if(form.customer_having_storys[i].selected == true ) 
    
                  {
    
                        alert("die story mit der ID" + form.customer_having_storys[i].value + "wurde gewählt") ; // das ganze nur als Bsp.
    
                   } 
    
                 } 
    
    
    
    

    so nun aber muss ich das ganze erweitern und wissen welcher Eintrag als letztes ausgewählt wurde, also wenn ich z.B. drei Einträge ausgewählt habe will ich wissen welchen von diesen Drei als letzte ausgewählt wurde, da ich zu diesem weiteren Infos anzeigen muss. Hab leider keine Ahnung wie ich das lösen könnte, googlen hat auch nichts gebracht. Jemand von Euch eine Idee ?

    Danke

    Gruß

    :marine

  16. Öhm, wenn ich Deine Abfrage richtig interpretiere (und du c_id! als Feld der customers gesehen hast), dann gibt er aber nur die "storys" aus, die auch wenigstens einen Satz in tblauthorizedstories drin haben, oder? *grübel*

    Ich würd's so machen:

    SELECT story.ID
    
    FROM story where story.ID not in (select storyid from authstory where customer=11)

    HTH,

    ICQ

    zirri, danke aber das war es nicht so ganz,

    ICQ, Dir auch danke aber das mySQL was ich benutze kennte keine Sub Selects :(

    dann muss ich das ganz über eine tmp Tabelle machen wie es aussieht , so n f**k

  17. SELECT * from tblstories INNER JOIN tblauthorizedstories ON AS_Story = ST_ID INNER JOIN customers ON bedingung(kenn deine feldbez. nicht) WHERE c_id!=11

    am rande, warum hast du in deiner n:m-tabelle einen zusaetzlichen PK ???

    du hast doch einen zusammengesetzten

    gruss

    danke zirri ,

    aber wieso brauche ich den join auf customers ? ich will doch nur die daten aus tblstory die ein customer nicht hat, das kann ich doch auch über die customer_id im tblauthorizedstories filternt, oder ??!!

  18. Hi,

    ich bekomm es einfach nicht hin,

    hab eine tabelle die heisst "tblstorys",

    dann noch eine "customers"

    und eine dritte "tblauthorizedstories"

    in tblstorys stehe halt daten mir eine auto_incremet id als primary key,

    die tblauthorizedstories beinhaltet die zuordung welcher Kunde (aus tabelle customers) welche Daten aus tblstorys hat eine n:m beziehung.

    als so was :

    ID (auto_increment int) - StoryID (int) - KundenID (int)

    1 - 22 - 11

    2 - 5 - 7

    usw.

    Nun will ich alle daten aus tblstorys die der Kunde mit der ID z.B. 11 nicht hat

    SELECT * FROM tblstories LEFT JOIN tblauthorizedstories ON

    AS_Story = ST_ID GROUP BY ST_ID HAVING AS_Customer != 11 ORDER BY ST_ID

    so gehts schonmal nicht :confused:

    kann jemand helfen ?

    Danke

    Gruß

    MadCro

  19. Ich habe bei mir zuhause auch DSL und da klappt es einwandfrei. Was bekommst du denn bei der Einwahl angezeigt ? Hast du eine Firewall aktiv die die Ports zumacht ? Kannst du eine 1:1 Verbindung herstellen (direkt von deinem Rechner auf deinen Rechner einwählen) ? Werden die IP´s für eine VPN-Verbindung richtig vergeben ?

    Gruß Patrick

    hmm also die Sache ist die die DSL verbidung (DFÜ) wird auf meinem "normalen" Rechner hergestellt und wird dort Freigegeben so das ich mit meinem laptop über diese Verbindung ins Internet gehen kann. Nun wollte ich über diese Verbindung eine VPN connection herstellen und dies klappt nicht, kann es sein das mein Rechner diese VPN Verbidung nicht an mein Laptop "weiterleiten" kann ? aber VPN ist doch auch nichts anderes als TCP/IP und wenn ich ganz normal surfen kann dann müßte doch auch VPN gehen ??!!! oder ?? :confused:

    danke

    Gruß

    MadCro

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...