我有以下返回结果的SQL查询
项private void exportDB() {
try {
File sd = Environment.getExternalStorageDirectory();
File data = Environment.getDataDirectory();
if (sd.canWrite()) {
String currentDBPath = "//data//" + "com.budgettrackpro.android.budgettrackpro"
+ "//databases//" + "budgettrackpro.db";
String backupDBPath = "BudgetTrackPro";
File currentDB = new File(data, currentDBPath);
File backupDB = new File(sd, backupDBPath);
FileChannel src = new FileInputStream(currentDB).getChannel();
FileChannel dst = new FileOutputStream(backupDB).getChannel();
dst.transferFrom(src, 0, src.size());
src.close();
dst.close();
Toast.makeText(getActivity(), "Backup Successful!",
Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
Toast.makeText(getActivity(), "Backup Failed!", Toast.LENGTH_SHORT)
.show();
}
}
和itemno
的销售。我也希望针对每个商品都没有no of total quantity
列。表itemdescripton
的{{1}}列。
SQL查询:
ITEMDESC#
我想要结果中的invitems
列。针对每个 select INITEMS.ITEMNO,(COUNT(INITEMS.ITEMNO)*COUNT(INITEMS.QTY)) 'Item
Sale',INITEMS.ITEMDESC#1 from InvItems INITEMS
INNER JOIN InvHdr HDR ON INITEMS.INVNO=HDR.INVNO
WHERE INITEMS.TYPE='3'
GROUP BY INITEMS.ITEMNO,INITEMS.ITEMDESC#1
的{{1}}表中的max date (last date item sale)
列
答案 0 :(得分:2)
如前面的注释中所述,您的查询无法正常工作,因为您为同一ITEMDESC
使用了不同的ITEMNO
这“给”您想要的结果
select INITEMS.ITEMNO,
MAX(INITEMS.ITEMDESC#1) AS 'ITEMDESC',
(COUNT(INITEMS.ITEMNO)*COUNT(INITEMS.QTY)) 'Item Sale'
FROM InvItems INITEMS
INNER JOIN InvHdr HDR ON INITEMS.INVNO = HDR.INVNO
WHERE INITEMS.TYPE = '3'
GROUP BY INITEMS.ITEMNO
但是您必须检查为什么数据中存在诸如此类的内容。您可以列出这种情况下的ITEMNO
SELECT ITEMNO
FROM InvItems
GROUP BY ITEMNO
HAVING MAX(ITEMDESC#1) <> MIN(ITEMDESC#1)
答案 1 :(得分:1)
假设您正在使用高于2005的SQL Server版本(如今这是一个非常安全的假设),则可以将over
子句与聚合函数一起使用,从而可能消除对{{1 }}子句(这可能是因为group by
将为group by
子句中存在的每个值(或一组值)返回不同的结果-因此,您可能还需要使用group by
:
distinct