Probleme mit nem SQL Statement

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Probleme mit nem SQL Statement

    Probleme mit nem SQL StatementHI Leute,

    schreib grad an nem Tool, das mir die Firma auf Auge gedrückt hat!
    Und zwar is das ganze ne Auswertung von Projekten!

    In dem nachfolgenden Statement, hole ich mir den Namen von eine Unterprojekt dann den namen von den Projekt selbst, dann irgendwelche initialen(sind nicht interessant) und am ENDE die ID von so einem Unterprojekt!

    Jetzt hab ich das problem, wenn meine Cheffin(die die rechte hat), so ein Unterprojekt in den nächsten Monat weiterschiebt(weils noch nicht fertig ist), dann wird ne neue Id für so ein Unterprojekt erzeugt, d.h. ich bekomm nen neuen Eintrag für das teil!

    Jetzt kommt die Frage, kann ich alle Unterprojekt zusammenfassen, die den gleichen Namen haben? Wenn ja wie?

    PHP-Code:
    SELECT distinct st.namepr.namepe.initials,st.id
    FROM project pr
    LEFT OUTER JOIN iteration it ON it
    .project_id=pr.id
    LEFT OUTER JOIN story st ON it
    .id=st.ITERATION_ID
    LEFT OUTER JOIN person pe ON st
    .CUSTOMER_ID=pe.id 
    LEFT OUTER JOIN task ta on st
    .id ta.story_id
    LEFT OUTER JOIN time_entry te on ta
    .id te.task_id
    WHERE te
    .start_time>=to_date('01.07.2006','dd.mm.yyyy') and te.end_time<=to_date('15.07.2006','dd.mm.yyyy'order by st.name desc 
    RESULT:


    Vielleicht könnt ihr mir helfen!
    Wär super!

    DANKE
    MFG
    MIKE

  • #2
    suchst du "GROUP By" ? oder DISTINCT?
    Mafia Browsergame - Scripts

    Wer glaubt, ein Christ zu sein, weil er die Kirche besucht, irrt sich. Man wird ja auch kein Auto, wenn man in eine Garage geht.
    Albert Schweitzer (14.01.1875 - 04.08.1965)

    Kommentar


    • #3
      Original geschrieben von garyx7de
      suchst du "GROUP By" ? oder DISTINCT?
      Beides geht nicht, da ich ne unterschiedliche ID hab!

      Hier mal ne genauere beschreibung von meinem Problem!

      Das Problem is im prinzip ziemlich einfach!

      Wird hier erklärt anhand von Bild:
      http://morpheus2100.de/bafzeug/hilfe/xlsmitsheets.jpg

      Hier die erkärung zu den Statements:
      http://morpheus2100.de/bafzeug/hilfe...erklaerung.jpg

      Und hier noch ein Bild zu den beziehungen der Db-tabellen:
      http://morpheus2100.de/bafzeug/hilfe/dbmodell.jpg

      Vielleicht is ja irgend einer, der da hand eines SQl Satements lösen kann!

      Hier noch der Code, wie ich die Sheets erzeuge:
      PHP-Code:
      public HSSFSheet[] build(HSSFWorkbook pWorkBookthrows Throwable {
            
      pWorkBook.createSheet("Zeiten");
            
      HSSFSheet[] sheets;
            
      mVData dbQuery();

            
      sheets = new HSSFSheet[mVData.size()];

            for (
      int i 0mVData.size() > ii++) {
               
      String trimedString;

               
      Vector mVInnerData = (VectormVData.get(i);

               for (
      int j 0mVInnerData.size() > jj++) {

                  if (
      mVInnerData.get(j) == null) {
                     
      mVInnerData.set(j"null");

                  }
               }
               
      trimedString mVInnerData.get(0).toString();
               
      System.out.println(trimedString);
               
      sheets[i] = pWorkBook.createSheet(checkLength(trimedString));
            }
            
      createHeader(pWorkBookmVData);
            
      ConnectionFactory.closeConnection();

            return 
      sheets;
         } 
      Schon mal danke an alle die helfen wollen!

      MFG
      MIKE

      Kommentar


      • #4
        Wenn du statt DISTINCT mit GROUP BY st.name, pr.name, pe.initials arbeitest, sollte es gehen.

        Wäre es nicht sauberer, die Projektlaufzeit entsprechend zu verlängern anstatt einen neuen Eintrag in die Tabelle zu machen?
        Dann hättest du auch die ganze Problematik nicht un tust dich bei späteren Auswertungen leichter (Benötigte Zeit für Unterprojekt X, ...)
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Original geschrieben von mrhappiness
          Wenn du statt DISTINCT mit GROUP BY st.name, pr.name, pe.initials arbeitest, sollte es gehen.

          Wäre es nicht sauberer, die Projektlaufzeit entsprechend zu verlängern anstatt einen neuen Eintrag in die Tabelle zu machen?
          Dann hättest du auch die ganze Problematik nicht un tust dich bei späteren Auswertungen leichter (Benötigte Zeit für Unterprojekt X, ...)
          ich hätte es genau so gemacht, aber das Programm Xplanner gibt es so vor! Da kann ich nichts daran ändern!

          MFG
          MIKE

          P.S.
          PHP-Code:
          SELECT st.name as storynamepr.name as projektpe.initials,st.id
          FROM project pr
          LEFT OUTER JOIN iteration it ON it
          .project_id=pr.id
          LEFT OUTER JOIN story st ON it
          .id=st.ITERATION_ID
          LEFT OUTER JOIN person pe ON st
          .CUSTOMER_ID=pe.id 
          LEFT OUTER JOIN task ta on st
          .id ta.story_id
          LEFT OUTER JOIN time_entry te on ta
          .id te.task_id
          WHERE te
          .start_time>=to_date('01.08.2006','dd.mm.yyyy') and te.end_time<=to_date('09.08.2006''dd.mm.yyyy'
          Group by st.namepr.namepe.initials
          order by st
          .name desc 
          habs jetzt so versucht, aber dann gehts nimma, beil ich kein group by auf "st.id" hab!

          DANKE
          MFG
          MIKE
          Zuletzt geändert von Morpheus2100; 17.08.2006, 11:20.

          Kommentar

          Lädt...
          X