2012-02-19 6 views
1

Прежде чем мы начнем, прошу прощения за мой статус новичков MYSQL. Я пытаюсь самостоятельно учить и немного борется с базовой базой.MYSQL: Ошибка 1054 - Неизвестная колонка

Справочная информация по моему вопросу: рассмотрите компанию, которая выдает счета раз в квартал ... и примерно через два месяца после окончания последней четверти. У меня есть таблица (Quarter_Identify), который имеет несколько столбцов:

  • Quarter_Start EX: 01.01.2010
  • Quarter_End EX: 03-31-2010
  • Quarter_Ident EX: 1000 < --- итерация номер за каждый квартал (следующий квартал будет 1001)
  • Date_Billed Это поле я пытаюсь заполнить из другой таблицы

другая таблица (Billing_List_1) содержит:

  • Date_Billed EX: 05-23-2010
  • Много прочей чепухи, связанная с клиентами

Мы принимаем все заказы в течение квартала, а также законопроект о 60 дней после того, как она заканчивается. Таким образом, в приведенном выше примере биллинг 5-23-2010 будет связан с кварталом Ян-Мар (мы действительно задерживаем счет). Я хотел бы воспользоваться этой датой и заполнить ее как Date_Billed, связанную с Quart_Ident «1000».

Я довольно близок и из своих исследований думаю, что я столкнулся с проблемой, что мое предложение «Где» включает ссылку на пока еще не созданную таблицу «Skyline». Столбец «skyline» получает все вместе, но по существу отключается на месяц (я сдался, пытаясь выяснить функцию DateDiff). Итак, я использую нижнюю часть, чтобы компенсировать результат одним и получить правильный ответ ... за исключением того, что он говорит мне, что у меня есть неизвестный столбец в моей статье where (ошибка 1054).

Select * from 
    (select Billing_List_1.date_billed, quarter_identify.quarter_start, 
     quarter_identify.quarter_end, quarter_identify.quarter_ident from Billing_List_1 
    join quarter_identify 
    on Billing_List_1.date_billed > quarter_identify.quarter_start 
     and Billing_list_1.date_billed < quarter_identify.quarter_end) 
as SKYLINETABLE; 

update quarter_identify A 
    set A.date_Billed = SKYLINETABLE.date_Billed 
    where A.quarter_ident = SKYLINETABLE.quarter_ident - 1 

Любые мысли были бы очень признательны. У вас отличный вечер.


Решение по TEEZ: Еще раз спасибо за большую помощь.

update quarter_identify A Left join 
    (Select * from 
     (select  Billing_List_1.date_billed, 
        quarter_identify.quarter_start, 
        quarter_identify.quarter_end, 
        quarter_identify.quarter_ident from billing_list_1 
     join quarter_identify 
     on Billing_list_1.date_billed > quarter_identify.quarter_start 
     and Billing_list_1.date_billed < quarter_identify.quarter_end) 
    as T) 
    as SKYLINETABLE on 1 
    set A.date_billed = SKYLINETABLE.date_billed 
    where A.quarter_ident = SKYLINETABLE.quarter_ident - 1 
+0

Кажется, вы объяснили что-то дополнительное. Мы смущаемся. –

+0

Вырезание в погоню ... »Код ошибки: 1054. Неизвестная колонка« Skyline.quarter_ident »в разделе« where »» – Skyline29

+0

Любая четверть (если я правильно понимаю структуру) связана со многими счетами.Итак, почему у вас есть столбец «Date_Billed»? –

ответ

0

Я думаю, вы ошибаетесь. Что такое SKYLINE таблица в запросе обновления?

Вы присоединяетесь к таблицам в запросе обновления, но таблица не указана. вы должны использовать свой первый запрос в соединении с запросом обновления.

вам нужно использовать join SKYLINETABLE, чтобы присоединиться к вашему запросу на обновление.

Как показано ниже:

update quarter_identify A left join (Select * from 
    (select Billing_List_1.date_billed, quarter_identify.quarter_start, 
     quarter_identify.quarter_end, quarter_identify.quarter_ident from Billing_List_1 
    join quarter_identify 
    on Billing_List_1.date_billed > quarter_identify.quarter_start 
     and Billing_list_1.date_billed < quarter_identify.quarter_end)) as SKYLINETABLE on[... specify on condition....] 
    set A.date_Billed = SKYLINETABLE.date_Billed 
    where A.quarter_ident = SKYLINETABLE.quarter_ident - 1 

Пожалуйста сделайте необходимые изменения

+0

Хорошо поймать Teez, я испортил его, приклеивая его выше. Исправил язык, но у меня все еще есть та же проблема. – Skyline29

+1

Teez, я не уверен, что я понимаю «на [... указать на условие ....]» ... что это за таблица, в которую вы вошли? Соединение в строке 4 собрало все данные вместе – Skyline29

+1

Teez, вы получили его. Было одно отсутствующее заявление «AS [Whatever]», но вы прибиты! Бесконечно благодарен. Я опубликую вышеописанный код. Еще раз спасибо. – Skyline29