我有两个表药物和库存。我正在尝试从两个表中选择以下所有详细信息,但是INVENTORY表中也有多个具有不同BRANCH_NO的药物ID清单(INVENTORY中的主键实际上是BRANCH_NO,MEDICATION_ID复合键)
我需要总计各种用药ID,还需要在一个SELECT命令中将表联接起来,并显示每个药物的所有信息(有5个),并在每一行的末尾显示每个药物的总和。但是即时通讯让Group by和Sum以及某一分区进行了混乱。请帮助,我是新来的。
以下是最新的无效版本-但不会显示
就像我碰巧的那样。
SELECT I.MEDICATION_ID,
SUM(I.STOCK_LEVEL)
FROM INVENTORY I
INNER JOIN (SELECT MEDICATION_NAME, SUBSTR(MEDICATION_DESC,1,20) "Medication Description",
MANUFACTURER, PACK_SIZE FROM MEDICATION) M ON MEDICATION_ID=I.MEDICATION_ID
GROUP BY I.MEDICATION_ID;
For the data imagine I want this sort of output:
MEDICATION_ID MEDICATION_NAME STOCK_LEVEL OtherColumns.....
1 Alpha 10
2 Bravo 20
3 Charlie 20
1 Alpha 30
4 Delta 10
5 Echo 20
5 Echo 40
2 Bravo 10
grouping and totalling into this:
MEDICATION_ID MEDICATION_NAME STOCK_LEVEL OtherColumns.....
1 Alpha 40
2 Bravo 30
3 Charlie 20
4 Delta 10
5 Echo 60
当它只有一个表时,我就可以得到它,但是当我试图连接表并选择东西时,它就不起作用了。
先谢谢大家。我很欣赏这可能是一个简单的解决方案,但会有所帮助。
答案 0 :(得分:1)
您需要将所有非聚合的列显式地写入SELECT
和GROUP BY
列表中( Btw,无需使用嵌套查询,如果是{{1} }列中缺少):
MEDICATION_ID
这样,您将能够返回所有列出的列。