2016-03-26 9 views
1

Ich habe folgende MySQL-Abfrage:# 1054 unbekannt Spalte auf Klausel Fehler

SELECT Ychastok_number AS 'Номер участка',podrazdelenie.Name AS Объект,type.Name AS Машина,avto.Marka AS Марка, avto.Gos_number AS 'Гос.Номер', avto.Invent_num AS 'Инвентарный номер', SUM(OtrabotanoMachine_hours) as 'Часов в рабочих сменах',SUM(sec.Hours) as Простои,SUM(TimeRaboty_dvigatelya)AS 'Отработано времени',TRUNCATE((SUM(sec.Hours)/ SUM(OtrabotanoMachine_hours))*100,1) as 'Процент простоев от часов рабочих смен', TRUNCATE((SUM(TimeRaboty_dvigatelya)/ SUM(OtrabotanoMachine_hours))*100,1) as 'Процент работ', CONVERT(group_concat(concat(prostoy.Prichina,'=',sec.Hours) separator ';') USING 'utf8') as 'Причины простоев' 
FROM 
jos_addRabotyAndProstoyMain main 
INNER JOIN avto ON main.Marka=avto.ID_Avto 
INNER JOIN typeconstructionmechanizm type ON main.Machine = type.ID_TypeConstructionMechanizm 
INNER JOIN podrazdelenie ON main.Ychastok = podrazdelenie.ID_Podrazdelenie 
INNER JOIN prostoy ON jos_addRabotyAndProstoySecond.Prostoy = prostoy.ID_Prosyoy 
INNER JOIN (
    SELECT id_fk, SUM(Hours) AS Hours 
    FROM jos_addRabotyAndProstoySecond 
    GROUP BY id_fk) sec ON sec.id_fk = main.id 
GROUP BY Ychastok_number,podrazdelenie.Name,type.Name,avto.Marka,avto.Gos_number,avto.Invent_num 

Und ich bin immer diese Fehlermeldung:

# 1054 - Unknown column 'jos_addRabotyAndProstoySecond.Prostoy' in ' on-Klausel‘

nach dieser Zeile hinzugefügt

INNER JOIN prostoy ON jos_addRabotyAndProstoySecond.Prostoy = prostoy.ID_Prosyoy 

Wie behebe ich diesen Fehler?

+1

Schauen Sie sich Ihr Schema an, der Fehler ist offensichtlich, dieses Feld existiert nicht oder Sie haben es falsch geschrieben – RiggsFolly

+0

Ich würde eher sagen, die Tabelle ist nicht bekannt, da ich die Tabelle nicht in der from-Klausel sehe. Es ist in einer Unterabfrage, aber die Unterabfrage hat einen richtigen Alias. – Shadow

Antwort

1

Sie haben keine Tabelle mit dem Alias ​​oder Namen jos_addRabotyAndProstoySecond. Daher ist die Spalte unbekannt.

Tatsächlich gibt es in der Abfrage keine Hinweise auf diese Tabelle, außer in der Unterabfrage. Sie können:

  • Gebrauch eine (geeignete) Spalte aus einer anderen Tabelle
  • die Tabelle aufnehmen möchten Sie in der FROM Klausel
  • die join

in der Unterabfrage gestellt Es ist unklar, was Sie wollen erreichen; Daher ist es schwierig, einen konkreten Vorschlag zu machen.

+0

Es ist in der Unterabfrage. – Shadow

+0

@Shadow. . . Ich habe das gesehen und die Antwort überarbeitet. –

Verwandte Themen