-1

我有输入:bruto, a/p %, t/a%:

例子:

  • 布鲁托 | a/p% | 吨/年% |
  • 100 | 50 | 25 |

我想要的输出:

  • 布鲁托 | a/p% | 内托 | 吨/年% | 总计|
  • 100 | 50 | 公式:100/100*a/p%=50 | 25 | 公式:50/100*t/a%=12,5 |

我的代码查询目前。创作工作:

Bruto | a/p% | Neto | and then syntax errors

tabula22.Load(new SqlCommand("SELECT     dbo.produkti_items_tab.itemname AS [Produkta nosaukums], dbo.tehnkart_produkt_tab.bruto AS [Bruto sv.], dbo.tehnkart_produkt_tab.aukstie_zudumi_proc AS [Zudumi % a/p],CAST((dbo.tehnkart_produkt_tab.bruto / 100 *


dbo.tehnkart_produkt_tab.aukstie_zudumi_proc) AS numeric(10,2)) 'Neto sv. gr.', dbo.tehnkart_produkt_tab.karstie_zudumi_proc AS [Zudumi % t/a], CAST((dbo.[Neto sv. gr.] / 100 * dbo.[Zudumi % t/a]) AS numeric(10,2)) 'beka', CAST(([Bruto sv.]-[Neto sv. gr.]-[beka]) AS numeric(10,2)) 'Total'   
FROM dbo.tehnkart_produkt_tab INNER JOIN dbo.produkti_items_tab ON dbo.tehnkart_produkt_tab.item_id = dbo.produkti_items_tab.itemid WHERE (dbo.tehnkart_produkt_tab.kart_id = '" + dat1_id + "')", TestConnection).ExecuteReader());

ps在这里硬编辑=]

4

1 回答 1

0

问题是您试图多次引用列别名。您必须将当前查询包装在子查询中才能多次使用列定义:

string mySql = @"
SELECT [Produkta nosaukums],
    [Bruto sv.],
    [Zudumi % a/p],
    [Neto sv. gr.],
    [Zudumi % t/a],
    CAST(([Neto sv. gr.] / 100 * [Zudumi % t/a]) AS numeric(10,2)) [beka],
    CAST(([Bruto sv.]-[Neto sv. gr.]-(CAST(([Neto sv. gr.] / 100 * [Zudumi % t/a]) AS numeric(10,2)))) AS numeric(10,2)) [Total]
FROM
(
    SELECT dbo.produkti_items_tab.itemname AS [Produkta nosaukums], 
        dbo.tehnkart_produkt_tab.bruto AS [Bruto sv.], 
        dbo.tehnkart_produkt_tab.aukstie_zudumi_proc AS [Zudumi % a/p],
        CAST((dbo.tehnkart_produkt_tab.bruto / 100 * dbo.tehnkart_produkt_tab.aukstie_zudumi_proc) AS numeric(10,2)) [Neto sv. gr.], 
        dbo.tehnkart_produkt_tab.karstie_zudumi_proc AS [Zudumi % t/a] 
    FROM dbo.tehnkart_produkt_tab 
    INNER JOIN dbo.produkti_items_tab 
        ON dbo.tehnkart_produkt_tab.item_id = dbo.produkti_items_tab.itemid 
    WHERE dbo.tehnkart_produkt_tab.kart_id = '" + dat1_id + @"'
) d";
tabula22.Load(new SqlCommand(mySql, TestConnection).ExecuteReader());
于 2013-04-08T18:17:07.343 回答