找出十个上传产品最多的用户,然后接上传数由多到少排序。语句如下:Select Top 10 UserID,UserName,(Select Count(*) From [Product] Where Passed = True And  UploadUserID=userID) As UploadFileNum  From [User] a Where UserDel = 0 And LockUser = 0 Order by UploadFileNum Desc
数据库是ACCESS的,得到的sql 错误提示是:No value given for one or more required parameters. 这样写怎么总是提示说不正确呢?请高手指点。

解决方案 »

  1.   

    SQL没问题,ACCESS的建议到ACCESS版提问会比较快得到想要的结果。
      

  2.   

    如果不要SQL 语句最后的 Order by UploadFileNum Desc是可以正常运行,加了排序就出如上面所示的错误。
      

  3.   

    Select Top 10 UserID,UserName,
        (Select Count(*) From [Product] as b Where b.Passed = 'True' And b.UploadUserID=a.userID) As UploadFileNum From [User] AS a 
    Where UserDel = 0 And LockUser = 0 
    Order by UploadFileNum Desc这样试试
      

  4.   

    select * from (
    Select Top 10 UserID,UserName,(Select Count(*) From [Product] Where Passed = True And UploadUserID=userID) As UploadFileNum From [User] a Where UserDel = 0 And LockUser = 0) as tb
    Order by UploadFileNum Desc那这样查呢
      

  5.   

    select Top 10 * from (
    Select UserID,UserName,(Select Count(*) From [Product] Where Passed = True And UploadUserID=userID) As UploadFileNum From [User] a Where UserDel = 0 And LockUser = 0) as tb
    Order by UploadFileNum Desc应该试这样,上一个逻辑不对
      

  6.   

    是可以运行了,但得到的UploadFileNum都为0了。
      

  7.   

    问一下啊,回复帖子字体时颜色是怎么设定的啊,好像不是直接设定,而是在SQL中写完后直接应用,是的吗
      

  8.   


    select Top 10 * 
    from (
        Select UserID,UserName,
            (Select Count(*) 
            From [Product] b
            Where Passed = True 
           And b.UploadUserID=a.userID) As UploadFileNum 
        From [User] a 
        Where UserDel = 0 
           And LockUser = 0
    ) as tb
    Order by UploadFileNum Desctry again
      

  9.   

        Select UserID,UserName,
            (Select Count(*) 
            From [Product] b
            Where Passed = True 
           And b.UploadUserID=a.userID) As UploadFileNum 
        From [User] a 但独这句试试
      

  10.   

    select top 10 * m.UserID,m.UserName,count(*) UploadFileNum 
    from [User] m , [Product] n
    where m.userID = n.UploadUserID and m.UserDel = 0 And m.LockUser = 0 and n.Passed = 'True'
    group by m.UserID,m.UserName
    order by UploadFileNum desc
      

  11.   

    Select Top 10 a.UserID,a.UserName,
     Count(*) as  UploadFileNum 
    From [User] a ,[Product] b 
    Where UserDel = 0 And LockUser = 0 
    and a.userID =b.UploadUserID and b.passed=true
    group by a.UserID,a.UserName
    Order by Count(*) Desc结果:UserID UserName UploadFileNum
    11 小李9 2
    9 小李7 2
    8 小李6 2
    7 小李5 2
    5 小李3 2
    4 小李2 2
    3 小李1 2
    2 小张 2
    1 小王 2
    10 小李8 1
    6 小李4 1
      

  12.   

    Product:
    ProductID UploadUserID ProductName Passed
    1 1 娃哈哈1 Yes
    2 2 娃哈哈1 Yes
    3 3 娃哈哈1 Yes
    4 4 娃哈哈1 Yes
    5 5 娃哈哈1 Yes
    6 6 娃哈哈1 Yes
    7 7 娃哈哈1 Yes
    8 8 娃哈哈1 Yes
    9 9 娃哈哈1 Yes
    10 10 娃哈哈1 Yes
    11 11 娃哈哈1 Yes
    12 1 娃哈哈1 Yes
    13 2 娃哈哈1 Yes
    14 3 娃哈哈1 Yes
    15 4 娃哈哈1 Yes
    16 5 娃哈哈1 Yes
    17 6 娃哈哈1 No
    18 7 娃哈哈1 Yes
    19 8 娃哈哈1 Yes
    20 9 娃哈哈1 Yes
    21 11 娃哈哈1 Yes
    User:
    UserID UserName UserDel LockUser
    1 小王 0 0
    2 小张 0 0
    3 小李1 0 0
    4 小李2 0 0
    5 小李3 0 0
    6 小李4 0 0
    7 小李5 0 0
    8 小李6 0 0
    9 小李7 0 0
    10 小李8 0 0
    11 小李9 0 0
      

  13.   


    数据好像是对的,但后面加了排序 Order by UploadFileNum Desc 就出错了
      

  14.   


    list the error ~~
      

  15.   


    这个是正解。感谢xys_777 如果有其它思路,欢迎继续发表
      

  16.   

    UploadFileNum 这个是查询里的别名,本查询是不能用的,如果在再加一个外层查询就能用了如 select * from 
    (select 11 as UploadFileNum from tb) t
    Order by UploadFileNum Desc