Bästa Sättet Att åtgärda Brister 3504 Sql

September 21, 2021 By Sean Fry Off

Rekommenderas: Fortect

  • 1. Ladda ner och installera Fortect
  • 2. Öppna programmet och klicka på "Skanna"
  • 3. Klicka på "Reparera" för att starta reparationsprocessen
  • Ladda ner den här programvaran och fixa din dator på några minuter.

    Om du hanterar fel 3504 sql måste den här användarhandboken hjälpa dig.

    < img alt = "" Arie dold = "true" roll motsvarar "presentation" SRC = "data: image SVG + XML, base64 PHN2ZyBoZWlnaHQ9IjEwNjciIHdpZHRoPSIxNjAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIvPg ==">

    Foto av John Schnobrich från Unsplash

    I den här artikeln kommer jag att förklara om du vet varför felet uppstod [Fel 3504] [SQLState HY000] Det valda icke-aggregerade värdet ska vara en del av en länkad institution när du kör en SQL-fråga med avseende på Teradata. Jag kommer att beskriva den vanliga orsaken till problemet och visa hur du kan undvika allt i framtiden.

    Problem

    Fel 3504 uppstår när datafiler samlas in i Teradata med någon sorts GROUP BY -sats. Det spelar egentligen ingen roll om du släpper DML ask (SELECT) eller gillar Men när DDL -teknikerna (som VIEW) har du ett exakt fel. Det enklaste sättet att få ett fel är:

     VÄLJ EMPLOYEE_ID, AVG (LÖN)ANSTÄLLDABESTÄLLNING 1; 

    error 3504 sql

    Syftet med ovanstående fråga är verkligen att beräkna den genomsnittliga lönen som oftast är associerad med alla säljare. Detta är dock kanske inte tillräckligt

    Inget GROUP BY -uttalande

    När du använder grupperingsåtgärder (som SUMMA, Räkna, du genomsnitt), kom ihåg att använda GROUP BY -erbjudandet mellan WHERE -klausulen och av den anledningen HAVING / ORDER BY. SQL -satsen för operationen är alltför väl följande:

    1. VÄLJ , AVG (attribut)
    2. FRÅN tabell1
    3. JOIN (INNER JOINT // VÄNSTER TILL HÖGER eller FULLT YTTRE JOINT) tabell2
    4. PÅ tabell1.attribut matchar tabell2.attribut
    5. Om
    6. GRUPP EFTER
    7. ÄR
    8. BESTÄLLNING AV

    Undantaget är att klienter inte ska låta dem använda GROUP BY -termen när de grupperar data som saknar många andra attribut, men det råkar sällan användas.

    Antal dåliga attribut

    Problem Utvalda icke-aggregerade respekter måste vara partiella, dvs eftersom en associerad grupp också kan äga rum. Kanske har du redan en GROUP BY -klausul i din fråga, och slutresultatet listan över missförstånd i en GROUP BY -klausul är ofta inte hel, dvs inte alla argument som används med grupperingsfunktioner inkluderades i den faktiska BY -gruppsträngen, till exempel: < /p>

     VÄLJ EMPLOYEE_ID, AVG (LÖN)S ÅR, ANSTÄLLDAEMPLOYEE_ID GROUPBESTÄLLNING 1.2; 

    I föregående översikt, efter SELECT -uttalandet, behåller vårt team de två attributen EMPLOYEE_ID för att inte tala om YEAR, och endast EMPLOYEE_ID -kvaliteten tillhör GROUP BY -termerna – den här funktionen kommer inte att syfta.

    Lösning

    Beroende alltid på GROUP BY -klausulen för att fungera

    Inom ekonomi används frågor med gruppoperationer utan ytterligare attribut förvånansvärt sällan, till exempel:

     VÄLJ TOTALT (LÖN)ANSTÄLLDA; 

    Du kan fint testa eller söka efter generiska fakta eller patientnummer, till exempel i början av ett företag. Vi behöver vanligtvis mer komplexa beräkningar. Kom därför alltid ihåg att inkludera GROUP för en BY -klausul.

    Se till att din argumentlista är lämpligast

    Gör det alltid till ett nummer som matchar argumentlistan för SELECT -satsen med kvantitativa attribut för hela GROUP BY -kommandot, till exempel:

     VÄLJ EMPLOYEE_ID, YEAR, GENomsnitt (LÖN)ANSTÄLLDAEMPLOYEE_ID GROUP, ÅRBESTÄLLNING 1.2; 

    Om du uppskattade det här inlägget, lägg till ett svar nedan eller dela det på någon Twitter, Facebook, LinkedIn eller annan obegränsad nätverkswebbplats.
    Tack för den speciella utvecklingen!

    I den här artikeln förklarar jag verkligen varför du lider av [Fel 3504] [SQLStateHY000] när du kör SQL -dilemmat i Teradata. De hänsynstagande icke-aggregerade prisklasserna måste vara en del av gruppen. Jag kommer att se dig ha, beskriv orsaken till baksidan och visa dig hur du säkert kommer att undvika misstag i framtiden.

    Problem

    Fel 3504 uppstår vid sammanslagning av dokument i Teradata som genererar användning av GROUP BY -klausulen. Oavsett om du bara skickar in en DML -fråga (SELECT) eller skapar den även under en DDL -funktion (som VIEW), får du det tidigare felet. Här är det enklaste sättet att bli ett fel:

     VÄLJ EMPLOYEE_ID, AVG (LÖN)ANSTÄLLDABESTÄLLNING AV 1; 

    Behovet av denna fråga är att komma fram till genomsnittslönen för alla vanliga människor. Men du vill nog ha något?

    Inget GROUP BY -uttalande

    Rekommenderas: Fortect

    Är du trött på att din dator går långsamt? Är det full av virus och skadlig kod? Var inte rädd, min vän, för Fortect är här för att rädda dagen! Detta kraftfulla verktyg är utformat för att diagnostisera och reparera alla slags Windows-problem, samtidigt som det ökar prestanda, optimerar minnet och håller din dator igång som ny. Så vänta inte längre - ladda ner Fortect idag!

  • 1. Ladda ner och installera Fortect
  • 2. Öppna programmet och klicka på "Skanna"
  • 3. Klicka på "Reparera" för att starta reparationsprocessen

  • När du använder grupperingsåtgärder (till exempel SUMMA, RÄKNA, Du genomsnitt), kom ihåg att använda GROUP BY -klausulen rrn mellan kommandot WHERE och resultatet HAVING / ORDER BY. Att hämta din nuvarande SQL -operation görs på följande sätt:

    1. VÄLJ , AVG (attribut)
    2. FRÅN tabell1
    3. JOIN (INNER JOIN // vänster till HÖGER för varje FULL YUTER JOIN) tabell2
    4. PÅ tabell1.attribut betyder tabell2.attribut
    5. Om
    6. GRUPP EFTER
    7. ÄR
    8. BESTÄLLNING AV

    Ett undantag – GROUP BY -klausulen när du samlar in data utan att få ytterligare attribut kommer inte att gå vart som helst, men det används sällan.

    Antal ogiltiga attribut

    problem genom att denna GROUP BY -sats alltid är partiell, dvs inte alla argument som används för att gruppera funktioner inkluderades inte inuti BY -gruppsträngen, för plats:

     VÄLJ EMPLOYEE_ID, YEAR, GENomsnitt (LÖN)ANSTÄLLDAEMPLOYEE_ID GROUPBESTÄLLNING 1.2; 

    Med ovanstående argument vill jag efter SELECT -satsen fler attribut EMPLOYEE_ID och YEAR, ett med bara ett EMPLOYEE_ID -attribut för att involvera en GROUP BY -klausul – dess enhet fungerar inte.

    Lösning

    Använd alltid GROUP BY -satsen för att gruppera kapacitet

    I praktiken med sökfördelar används gruppfunktionen utan ytterligare komponenter är mycket sällsynt, för produkt:

     VÄLJ TOTALT (LÖN)ANSTÄLLDA 

    Du är säker under eller under testningen på jakt efter summor och för universella tal, till exempel livsstilen för dessa företag från de förvånansvärt begynnande spetsarna. Vi behöver vanligtvis mycket komplexa beräkningar. Kom därför alltid ihåg att du kan kombinera GROUP med BY -villkoret.

    Se till att argumentlistan är korrekt

    error 3504 sql

    Kontrollera alltid att argumentutbudet i SELECT -satsen matchar vårt eget attributförhållande i GROUP BY -kommandot, till exempel:

     VÄLJ EMPLOYEE_ID, YEAR, GENomsnitt (LÖN)ANSTÄLLDAEMPLOYEE_ID GROUP, ÅRBESTÄLLNING 1.2; 

    Om du gillade den här webbplatsen nära dig, använd gärna kommentaren nedan eller skriv ditt inlägg på Facebook, Twitter, LinkedIn eller något annat socialt nätverk.
    Tack alla avancerade!

    Ladda ner den här programvaran och fixa din dator på några minuter.

    Error 3504 Sql
    Fout 3504 Sql
    Fehler 3504 Sql
    오류 3504 Sql
    Erreur 3504 Sql
    Errore 3504 Sql
    Error 3504 Sql
    Oshibka 3504 Sql
    Blad 3504 Sql
    Erro 3504 Sql