在我们开始之前,我为我的MYSQL新手状态道歉。我试图自我教导,并且基本的基本结构挣扎了一下。MYSQL:错误1054 - 未知列
关于我的问题的背景:考虑一家公司每季度发布一次账单...并且在上个季度结束后大约两个月。我有一个表(Quarter_Identify),有几列:
- Quarter_Start EX:01-01-2010
- Quarter_End EX:2010年3月31日
- Quarter_Ident EX:1000 < ---迭代数每个季度的(下一 季度将是1001)
- Date_Billed这是我想从另一个表
其他表(Billing_List_1)包含填充字段:
- Date_Billed EX:2010年5月23日
- 很多相关的客户
我们在本季度全部采取订单其他废话,和比尔60天左右结束之后发生的。所以,在上面的例子中,2010年5月23日的账单将与1月至3月的季度相关(我们的账单真的很晚)。我想取这个日期并将其填充为与Quart_Ident“1000”关联的Date_Billed。
我相当接近,从我的研究我认为我遇到了问题,我的“Where”子句包含对尚未创建表“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
看来你解释一些额外的东西。我们感到困惑。 – 2012-02-19 01:15:14
切割到追逐...“错误代码:1054.未知列'Skyline.quarter_ident'在'where子句'” – Skyline29 2012-02-19 01:23:35
任何季度(如果我理解结构正确)与许多帐单有关。那么,为什么你在那里有一个'Date_Billed'专栏? – 2012-02-19 01:57:48