2017-03-20 27 views
1

當談到sql時,我是相當新手,但是當我決定進入某些工作時,我會一路走下去。我正在嘗試創建一個數據庫,該數據庫將根據產品製造優先級的輸入進行計算。我有一張表格,每個星期都嚴格按產品編號和計劃生產進行投入。在另一個表格中,我有一些轉換值,我需要使用它將計劃的素材轉換爲英鎊。在第三個表格中,我需要在轉換表格中插入每週產品物料編號計劃素材的值除以每磅英尺的值,並將這些值插入第三個表中對應於該周的相應周編號列中第一個表中的數字列。SQL查詢執行2個表之間的分割並將結果插入到第三個表中

我希望你對我來說很清楚,因爲它在我腦海中。我遇到的問題是我不知道如何使這個動態查詢與週數的列名匹配,並適當地執行數學和插入。

我的SELECT代碼甚至不能正常工作,因爲它似乎是從每週數字列中獲取所有值並將其除以每磅的英尺值之前的總和。在同一個調用中,我試圖做一個插入函數,但沒有運氣,也沒有真正期待。我還沒有走得比這還遠。任何幫助,甚至讓我開始將不勝感激。同時我會繼續嘗試一些不同的事情,看看我能想出什麼。

SELECT WeeklyFootagePlan.Wire_PN/Conversions.Finish_ft_lb 
FROM WeeklyFootagePlan, Conversions 
WHERE WeeklyFootagePlan.Wire_PN = Conversions.Wire_PN; 
+0

我看不出有什麼毛病查詢本身。你能告訴我們樣品輸入和你期望得到的輸出嗎? –

+0

不知道數據是什麼樣子很難說。你能提供這些數據嗎?看起來你可能需要GROUP BY一週或通過將結果包含在WHERE子句中來限制本週的結果。再一次,很難說不知道數據是什麼樣子。 – JuveLeo1906

+0

WeeklyFootagePlan表具有包含PN和Week1,Week2等的列。轉換表具有包含每磅PN和英尺的列,並且表3具有與WeeklyFootagePlan相同的列。因此,例如,我需要從WeeklyFootagePlan的PN 1和Week1中獲取值,並將其除以每磅轉化表中的英尺,並將新值插入表3中。希望有所幫助。如果你想問我爲什麼不把它們放在同一張桌子上,我確實需要這些表格作爲不同的表格! –

回答

0

看起來像你只需要加入你WeeklyFootagePlan表您轉換表上列PN

下面是一個示例解決方案:

重新創建表的某些版本

create table YourSchema.WeeklyCalculation(PN int(10) 
             , Week1Conversion double 
             , Week2Conversion double 
             , Week3Conversion double 
             , primary key PN_pkey(PN)); 

create table YourSchema.WeeklyFootagePlan(PN int(10) auto_increment 
             , Week1 double 
             , Week2 double 
             , Week3 double 
             , primary key PN_pkey(PN)); 

create table YourSchema.Conversion(PN int(10) 
           , Conversion1 double 
           , Conversion2 double 
           , Conversion3 double 
           , primary key PN_pkey(PN)); 

插入一些數據

insert 
    into YourSchema.WeeklyFootagePlan(Week1, Week2, Week3) 
select 50, 20, 12.5; 

insert 
    into YourSchema.Conversion(PN, Conversion1, Conversion2, Conversion3) 
select 1, .25, 1.5, 2.5; 

插入到你的第三個表

insert 
    into YourSchema.WeeklyCalculation(PN, Week1Conversion, Week2Conversion, Week3Conversion) 
select w.PN, w.week1/c.Conversion3 as SomeConversion 
    , w.Week2/c.Conversion3 as AnotherConversion 
    , w.Week3/c.Conversion2 as YetAnotherConversion 
    from YourSchema.WeeklyFootagePlan w 
    join YourSchema.Conversion c 
    on c.PN = w.PN; 

結果:

select * 
    from YourSchema.WeeklyCalculation; 

PN | Week1Conversion | Week2Conversion | Week3 Conversion 
1 |  20   |  8   | 8.33333333333333 
+0

我真的不知道你在這裏得到什麼。我完全複製了你的代碼,並將表名改爲我的表名,但是我在FROM子句中出現語法錯誤。我完全複製了你的代碼,而沒有改變任何東西,並試圖保存它,我得到了同樣的錯誤。我明顯地拿出額外的......來簡化我試圖做的測試它的轉換量,但我甚至無法保存查詢,因爲錯誤。這個聲明究竟是如何工作的?它在做什麼? –

+0

解決方案沒有什麼複雜的,我只是根據提供的數據給了你一個簡單的例子。有關您獲得的錯誤以及您保存的位置的詳細信息將有助於找出您遇到的問題。我會在解決方案中增加更多細節,也許這會讓你更清楚。 – JuveLeo1906

相關問題