具有COMPARE(HAVING)和GROUP的MYSQL或SQL SELECT

时间:2018-01-12 11:51:14

标签: php mysql sql

我在数据库中有三个表,并希望在一个SELECT语句中进行求和和比较。

逻辑是,如果一篇文章库存不足,应该选择它。如果表quantity中具有相同artID的所有行的汇总Articles in stock(一篇文章可能在表中有多行,因此需要进行汇总),则文章运行较低或者等于行warning中的列ID和相应的warehouse。这也是Articles特定的,这意味着文章可以在一个仓库中完全库存,同时在另一个仓库中运行较低。这就是为什么需要总结在特定仓库上分组的原因。 还需要有关哪个仓库运行不足的信息,例如文章的artNr,可以在表Articles +----+-------+---------+ | ID | artNr | warning | +----+-------+---------+ | 1 | LA08 | 5 | | 2 | LA09 | 10 | | 3 | LA58 | 0 | +----+-------+---------+ warehouse +----+-------+ | ID | artID | +----+-------+ | 3 | 1 | | 4 | 1 | | 5 | 2 | +----+-------+ Articles in stock +----+-------+-------------+----------+ | ID | artID | warehouseID | quantity | +----+-------+-------------+----------+ | 1 | 1 | 3 | 10 | | 2 | 1 | 5 | 15 | | 3 | 2 | 5 | 45 | | 4 | 1 | 3 | 20 | | 5 | 3 | 5 | 4 | +----+-------+-------------+----------+

中找到
    <?xml version="1.0" encoding="utf-8"?>


    <Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
        android:keyWidth="10%p"
        android:horizontalGap="0px"
        android:verticalGap="0px"
        android:keyHeight="@dimen/key_height">
        <Row android:keyHeight="2px"></Row>
        <Row>
            <Key
                android:codes="49"
                android:keyEdgeFlags="left"
                android:keyLabel="1" />
            <Key
                android:codes="50"
                android:keyLabel="2" />
            <Key
                android:codes="51"
                android:keyLabel="3" />
            <Key
                android:codes="52"
                android:keyLabel="4" />
            <Key
                android:codes="53"
                android:keyLabel="5" />
            <Key
                android:codes="54"
                android:keyLabel="6" />
            <Key
                android:codes="55"
                android:keyLabel="7" />
            <Key
                android:codes="56"
                android:keyLabel="8" />
            <Key
                android:codes="57"
                android:keyLabel="9" />
            <Key
                android:codes="48"
                android:keyEdgeFlags="right"
                android:keyLabel="0" />
        </Row>

        <Row>
            <Key
                android:codes="113"
                android:keyEdgeFlags="left"
                android:keyLabel="q" />
            <Key
                android:codes="119"
                android:keyLabel="w" />

            <Key
                android:codes="101"
                android:keyLabel="e" />
            <Key
                android:codes="114"
                android:keyLabel="r" />
            <Key
                android:codes="116"
                android:keyLabel="t" />
            <Key
                android:codes="121"
                android:keyLabel="y" />
            <Key
                android:codes="117"
                android:keyLabel="u" />
            <Key
                android:codes="105"
                android:keyLabel="i" />

            <Key
                android:codes="111"
                android:keyLabel="o" />
            <Key
                android:codes="112"
                android:keyEdgeFlags="right"
                android:keyLabel="p" />
        </Row>


        <Row>

            <Key
                android:codes="97" android:keyLabel="a" android:horizontalGap="5%p"
                android:keyEdgeFlags="left" android:popupKeyboard="@xml/keyboard_popup_template"
                android:popupCharacters="áăä"/>
            <Key
                android:codes="115"
                android:keyLabel="s" />
            <Key
                android:codes="100"
                android:keyLabel="d" />
            <Key
                android:codes="102"
                android:keyLabel="f" />
            <Key
                android:codes="103"
                android:keyLabel="g" />
            <Key
                android:codes="104"
                android:keyLabel="h" />
            <Key
                android:codes="106"
                android:keyLabel="j" />
            <Key
                android:codes="107"
                android:keyLabel="k" />
            <Key
                android:codes="108"
                android:keyEdgeFlags="right"
                android:keyLabel="l" />


        </Row>

        <Row>
            <Key
                android:codes="-1" android:keyIcon="@drawable/narrow2"
                android:keyWidth="15%p" android:isModifier="true"
                android:isSticky="true" android:keyEdgeFlags="left" />
            <Key
                android:codes="122"
                android:keyLabel="z"
                android:keyWidth="15%p" />
            <Key
                android:codes="120"
                android:keyLabel="x"
                android:keyWidth="15%p" />
            <Key
                android:codes="99"
                android:keyLabel="c"
                android:keyWidth="15%p" />
            <Key
                android:codes="118"
                android:keyLabel="v"
                android:keyWidth="15%p" />
            <Key
                android:codes="98"
                android:keyLabel="b"
                android:keyWidth="15%p" />
            <Key
                android:codes="110"
                android:keyLabel="n"
                android:keyWidth="15%p" />
            <Key
                android:codes="109"
                android:keyLabel="m"
                android:keyWidth="15%p" />
            <Key
                android:codes="-5"
                android:isRepeatable="true"
                android:keyEdgeFlags="right"
                android:keyIcon="@drawable/sym_keyboard_delete"
                android:keyWidth="20%p" />
        </Row>

        <Row
            android:rowEdgeFlags="bottom"
            android:verticalGap="5px">

            <Key
                android:codes="-2"
                android:keyEdgeFlags="left"
                android:keyLabel="123"
                android:keyWidth="15%p" />
            <Key
                android:codes="64"
                android:keyLabel="\@"
                android:keyWidth="10%p" />

            <Key
                android:codes="-101"
                android:keyIcon="@drawable/sym_keyboard_language_switch"
                android:keyWidth="10%p" />
            <Key
                android:codes="32"
                android:isRepeatable="true"
                android:keyLabel="SPACE"
                android:keyWidth="30%p" />

            <Key
                android:codes="46"
                android:keyLabel="."
                android:keyWidth="10%p" />
            <Key
                android:codes="44"
                android:keyLabel=","
                android:keyWidth="10%p"
                android:popupCharacters=".,?!#@"
                android:popupKeyboard="@xml/keyboard_popup_template" />
            <Key
                android:codes="-4"
                android:keyEdgeFlags="right"
                android:keyLabel="DONE"
                android:keyWidth="20%p" />
        </Row>

        <Row android:keyHeight="2px"></Row>

    </Keyboard>

Please try it.

1 个答案:

答案 0 :(得分:1)

select a.id, s.warehouseID, sum(s.quantity)
from articles a 
join articles_in_stock s on a.id = s.artID
group by a.id, s.warehouseID
having sum(s.quantity) <= a.warning