添加WHERE出错了,但为什么呢? [英] Adding a WHERE goes wrong, but why?

查看:92
本文介绍了添加WHERE出错了,但为什么呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

添加WHERE出错了,但是为什么



Adding a WHERE goes wrong, but why

WHERE Omschrijving like @Materiaalstuk AND FK_Materiaalgroep like @Materiaalgroep AND FK_Leverancier like @Leverancier







var query = "SELECT [IDMateriaal], Omschrijving, Inkoop, Opslag, FK_eenheid, Bepaald_Tarief, FK_Materiaalgroep, FK_leverancier,Datum_wijziging, Eenheid, MateriaalGroep WHERE Omschrijving like @Materiaalstuk AND FK_Materiaalgroep like @Materiaalgroep AND FK_Leverancier like @Leverancier, CASE WHEN (Bepaald_Tarief IS NULL) THEN((Inkoop / 100) * Opslag) + Inkoop ELSE Bepaald_tarief END as Verkoop from Materiaal LEFT OUTER JOIN Eenheid ON Materiaal.FK_Eenheid = Eenheid.IDEenheid LEFT OUTER JOIN MateriaalGroep ON Materiaal.FK_Materiaalgroep = MateriaalGroep.IDMateriaalgroep ORDER BY MateriaalGroep DESC, Omschrijving ASC";

using (var adapter = new SqlDataAdapter(query, connection))
using (SqlCommand command = new SqlCommand(query, connection))

{
    command.Parameters.AddWithValue("@Materiaalstuk", "%" + TX_Materiaalstuk_Zoeken.Text + "%");

    XX_MateriaalgroepZoeken.Text = CMB_Materiaalgroep.SelectedValue.ToString();
    command.Parameters.AddWithValue("@Materiaalgroep", XX_MateriaalgroepZoeken.Text);

    XX_LeverancierZOEKEN.Text = CMB_Leverancier.SelectedValue.ToString();
    command.Parameters.AddWithValue("@Leverancier", XX_LeverancierZOEKEN.Text);





我的尝试:



var query =SELECT [IDMateriaal],Omschrijving,Inkoop,Opslag,FK_eenheid,Bepaald_Tarief,FK_Materiaalgroep,FK_leverancier,Datum_wijziging,Eenheid,MateriaalGroep在哪里Omschrijving像@Materiaalstuk和FK_Materiaalgroep像@Materiaalgroep和FK_Leverancier像@Leverancier,CASE WHEN(Bepaald_Tarief IS NULL)然后((Inkoop / 100)* Opslag)+ Inkoop ELSE Bepaald_tarief END作为本土的Verkoop LEFT OUTER JOIN Eenheid ON Materiaal.FK_Eenheid = Eenheid.IDEenheid LEFT OUTER JOIN MateriaalGroep ON Materiaal.FK_Materiaalgroep = MateriaalGroep.IDMateriaalgroep ORDER BY MateriaalGroep DESC,Omschrijving ASC ;



What I have tried:

var query = "SELECT [IDMateriaal], Omschrijving, Inkoop, Opslag, FK_eenheid, Bepaald_Tarief, FK_Materiaalgroep, FK_leverancier,Datum_wijziging, Eenheid, MateriaalGroep WHERE Omschrijving like @Materiaalstuk AND FK_Materiaalgroep like @Materiaalgroep AND FK_Leverancier like @Leverancier, CASE WHEN (Bepaald_Tarief IS NULL) THEN((Inkoop / 100) * Opslag) + Inkoop ELSE Bepaald_tarief END as Verkoop from Materiaal LEFT OUTER JOIN Eenheid ON Materiaal.FK_Eenheid = Eenheid.IDEenheid LEFT OUTER JOIN MateriaalGroep ON Materiaal.FK_Materiaalgroep = MateriaalGroep.IDMateriaalgroep ORDER BY MateriaalGroep DESC, Omschrijving ASC";

推荐答案

因为WHERE子句没有进入SELECT列列表:它是一个单独的子句h在SELECT结束时:

Because the WHERE clause does not go in the SELECT columns list: it's a separate clause which goes at the end of the SELECT:
SELECT <columns> FROM MyTable m
JOIN MyOtherTable o ON m.ColumnName = o.OtherColumnName
WHERE <WhereCondition>


如果您使用的是Sql Server,那么您不能在from之前使用where子句,如果需要,可以在子查询中使用where子句。



这里你正在使用where子句,因此你会收到错误。
if you are using Sql Server then you can not use "where" clause before "from" you can use where clause in sub query if you want.

here you are using where clause before from so you are getting error.


这篇关于添加WHERE出错了,但为什么呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆